admin 管理员组

文章数量: 1087871


2024年5月20日发(作者:osi各层的网络设备)

链表的初始化c语言

链表是一种常用的数据结构,它由一系列节点组成,每个节点包含数

据域和指针域。C语言中,链表的初始化可以通过创建一个指向链表

头节点的指针,并将其初始化为空,然后再向链表中插入节点来完成。

链表的初始化主要包括以下几个步骤:

1. 创建一个指向链表头节点的指针,并将其初始化为空。

```

struct ListNode {

int val;

struct ListNode *next;

};

struct ListNode* initList() {

return NULL;

}

```

2. 向链表中插入节点。在C语言中,可以通过定义一个新的节点,然

后将其指针域指向链表中的下一个节点,同时将当前链表节点的指针

域指向新节点来实现。

```

struct ListNode* insertList(struct ListNode* head, int val) {

struct ListNode* newNode = (struct

ListNode*)malloc(sizeof(struct ListNode));

newNode->val = val;

newNode->next = head;

return newNode;

}

```

3. 遍历链表。链表的遍历是指从链表头节点开始,依次访问链表中每

个节点的数据并输出。在C语言中,可以使用while循环来遍历链表,

并使用指针变量来指向当前节点。

```

void traverseList(struct ListNode* head) {

struct ListNode* p = head;

while (p != NULL) {

printf("%d ", p->val);

p = p->next;

}

}

```

完整的链表初始化代码如下:

```

#include

#include

struct ListNode {

int val;

struct ListNode *next;

};

struct ListNode* initList() {

return NULL;

}

struct ListNode* insertList(struct ListNode* head, int val) {

struct ListNode* newNode = (struct

ListNode*)malloc(sizeof(struct ListNode));

newNode->val = val;

newNode->next = head;

return newNode;

}

void traverseList(struct ListNode* head) {

struct ListNode* p = head;

while (p != NULL) {

printf("%d ", p->val);

p = p->next;

}

}

int main() {

struct ListNode* head = initList();

head = insertList(head, 1);

head = insertList(head, 2);

head = insertList(head, 3);

traverseList(head);

return 0;

}

```

这段代码中,我们先创建了一个空链表,然后向链表中插入了三个节

点,并使用遍历函数输出了链表中每个节点的数据。


本文标签: 链表 节点 指向 指针 遍历