用c语言按一下要求写一篇代码1. 请以“后插法”创建一个数据元素为整数的单链表。 2. 请编写一个函数可以让我输入并打印单链表中的所有整数。 3. 请编写一个Max函数获取单链表中包含的最大整数值。
时间: 2024-10-16 15:06:30 浏览: 35
好的,以下是使用C语言按照您的要求实现单链表操作的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建新节点
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (!newNode) {
printf("Memory allocation failed.\n");
return NULL;
}
newNode->data = value;
newNode->next = NULL;
return newNode;
}
// 后插法插入节点到链表尾部
void insertAtEnd(Node** head, int value) {
if (*head == NULL) {
*head = createNode(value);
} else {
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = createNode(value);
}
}
// 打印链表中的所有整数
void printList(Node* head) {
while (head != NULL) {
printf("%d -> ", head->data);
head = head->next;
}
printf("NULL\n");
}
// 获取链表中的最大值
int maxInList(Node* head) {
if (head == NULL) {
return INT_MIN; // 或者抛出错误
}
int maxVal = head->data;
Node* temp = head;
while (temp != NULL) {
if (temp->data > maxVal) {
maxVal = temp->data;
}
temp = temp->next;
}
return maxVal;
}
int main() {
Node* head = NULL;
// 插入一些整数
insertAtEnd(&head, 5);
insertAtEnd(&head, 20);
insertAtEnd(&head, 10);
// 打印链表
printf("Linked List:\n");
printList(head);
// 获取并打印最大值
int maxValue = maxInList(head);
printf("\nMaximum value in the list is: %d\n", maxValue);
return 0;
}
```
阅读全文