2024年4月30日发(作者:)
链表的初始化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;
}
```
这段代码中,我们先创建了一个空链表,然后向链表中插入了三个节
点,并使用遍历函数输出了链表中每个节点的数据。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1714415235a2442018.html
评论列表(0条)