用C语言将数值1-10存入链表中,将其逆序输出。
时间: 2024-09-28 09:04:12 浏览: 33
基于数组和链表的学生信息管理系统(c语言程序设计实训)
5星 · 资源好评率100%
在C语言中,我们可以使用结构体定义链表节点,并创建一个函数来添加数字到链表,然后编写另一个函数来反转链表并打印其内容。这里是一个简单的示例:
首先,定义链表节点结构:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
```
接下来,创建一个函数来插入值到链表:
```c
Node* insert(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
newNode->data = value;
newNode->next = *head;
*head = newNode;
return newNode;
}
```
接着,创建一个函数来反转链表:
```c
Node* reverseList(Node** head) {
Node* prev = NULL;
Node* current = *head;
Node* nextTemp;
while (current != NULL) {
nextTemp = current->next;
current->next = prev;
prev = current;
current = nextTemp;
}
*head = prev; // 更新新的头节点
return *head;
}
```
最后,主函数来演示整个过程:
```c
int main() {
Node* head = NULL;
for (int i = 1; i <= 10; i++) {
head = insert(&head, i);
}
// 反转链表
head = reverseList(&head);
// 打印逆序后的链表
Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
return 0;
}
```
这个程序会先将1-10的数字存储在链表中,然后逆序链表并输出结果。
阅读全文