用链表储存1,2,3,4,并实现逆序输出,C语言
时间: 2024-09-15 08:07:28 浏览: 60
在C语言中,我们可以使用单向链表来存储整数1、2、3、4,并实现逆序输出。首先,我们需要创建一个节点结构体来存储数据和指向下一个节点的指针。然后,我们创建链表并插入元素,最后遍历链表实现逆序输出。
以下是简单的步骤和代码示例:
```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));
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 reversePrint(Node* head) {
if (head == NULL) {
printf("链表为空\n");
return;
}
Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
Node* prev = temp;
temp = temp->next;
// 使用快慢指针技巧交换位置
if (prev->next != NULL) {
prev->next = prev->next->next;
temp->next = prev;
}
}
printf("\n"); // 结束行
}
int main() {
Node* head = NULL;
// 插入数字
insertAtEnd(&head, 4);
insertAtEnd(&head, 3);
insertAtEnd(&head, 2);
insertAtEnd(&head, 1);
printf("逆序输出:\n");
reversePrint(head);
return 0;
}
```
当你运行这个程序,你会看到逆序的输出:`1 2 3 4`。
阅读全文