用C语言实现题目内容:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。
时间: 2024-02-12 21:06:38 浏览: 92
以下是使用C语言实现题目内容的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct node {
int data; // 数据域
struct node *next; // 指针域
} Node, *LinkList;
// 创建新节点
Node *createNode(int data) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 在链表头部插入节点
void insertNode(LinkList *head, Node *newNode) {
newNode->next = *head;
*head = newNode;
}
// 逆序建立单链表
LinkList createList() {
LinkList head = NULL;
int data = 0;
printf("请输入若干个正整数,以-1结束:\n");
scanf("%d", &data);
while (data != -1) {
Node *newNode = createNode(data);
insertNode(&head, newNode);
scanf("%d", &data);
}
return head;
}
// 输出单链表
void printList(LinkList head) {
printf("逆序输出单链表:\n");
while (head != NULL) {
printf("%d ", head->data);
head = head->next;
}
printf("\n");
}
int main() {
LinkList list = createList();
printList(list);
return 0;
}
```
运行结果:
```
请输入若干个正整数,以-1结束:
1 2 3 4 5 -1
逆序输出单链表:
5 4 3 2 1
```
阅读全文