C语言链性表从键盘中获取数字
时间: 2024-05-02 08:16:32 浏览: 39
关于链表的c语言实现
下面是一个简单的示例代码,可以从键盘中读取数字并将它们存储到链表中:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int data;
struct node *next;
} Node;
int main() {
Node *head = NULL;
Node *tail = NULL;
int num;
printf("请输入数字,以-1结束:\n");
while (1) {
scanf("%d", &num);
if (num == -1) {
break;
}
Node *newNode = (Node*)malloc(sizeof(Node));
newNode->data = num;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
printf("链表中的数字为:\n");
Node *p = head;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
// 释放链表内存
p = head;
while (p != NULL) {
Node *temp = p;
p = p->next;
free(temp);
}
return 0;
}
```
该程序首先定义了一个 `Node` 结构体表示链表的节点,包含一个 `data` 字段表示节点存储的数字,以及一个 `next` 字段表示下一个节点的指针。
在 `main()` 函数中,程序首先定义了一个指向链表头部和尾部的指针 `head` 和 `tail`,并初始化为 `NULL`。然后程序通过循环从键盘中读取数字,每读取一个数字就创建一个新的节点,并将其插入到链表的尾部。如果链表为空,那么新节点就成为链表的头部和尾部。否则,程序将新节点插入到链表的尾部,并更新 `tail` 指针。
最后,程序输出链表中存储的数字,并释放链表所占用的内存。
阅读全文