用C语言给出一个链表结构
时间: 2023-07-25 20:11:36 浏览: 96
c语言实现链表的基本操作,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
下面是一个用C语言实现的单向链表结构:
```c
typedef struct ListNode {
int data; // 数据域
struct ListNode *next; // 指针域
} ListNode;
```
这个结构体定义了一个节点,包含一个整型数据域和一个指向下一个节点的指针域。在使用时,我们可以通过创建多个节点,然后将它们串联起来来构成一个链表。例如,下面是一个创建链表的示例代码:
```c
ListNode *createList() {
ListNode *head = NULL;
ListNode *tail = NULL;
int data;
// 从标准输入读入一些数据,每读入一个数据就创建一个节点
while (scanf("%d", &data) != EOF) {
ListNode *newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->data = data;
newNode->next = NULL;
// 如果链表为空,则新节点为头节点
if (head == NULL) {
head = newNode;
tail = newNode;
}
// 否则将新节点加到链表尾部
else {
tail->next = newNode;
tail = newNode;
}
}
return head;
}
```
这个函数会从标准输入读入一些整数,每读入一个整数就创建一个新的节点,并将它加到链表的尾部。最后返回链表的头节点。
阅读全文