链表的初始化c语言
链表是一种常用的数据结构,它由一系列节点组成,每个节点包含数据域和指针域。C语言中,链表的初始化可以通过创建一个指向链表头节点的指针,并将其初始化为空,然后再向链表中插入节点来完成。
链表的初始化主要包括以下几个步骤:
1. 创建一个指向链表头节点的指针,并将其初始化为空。
```
    struct ListNode {
        int val;
        struct ListNode *next;
    };
c语言listinsert函数
   
    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 <stdio.h>
#include <stdlib.h>
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;
}
```
这段代码中,我们先创建了一个空链表,然后向链表中插入了三个节点,并使用遍历函数输出了链表中每个节点的数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。