C语言创建单链表并赋值:实例教程

本教程将演示如何使用C语言创建一个空的单链表,并向其添加元素。代码示例如下:

#include <stdio.h>
#include <stdlib.h>

// 定义链表节点结构体
typedef struct node {
    int value;
    struct node *next;
} Node;

// 创建一个空的单链表
Node* create_list() {
    return NULL;
}

// 在链表尾部插入一个节点
Node* insert_tail(Node *head, int value) {
    Node *new_node = (Node*)malloc(sizeof(Node));
    new_node->value = value;
    new_node->next = NULL;
    if (head == NULL) {
        head = new_node;
    } else {
        Node *tail = head;
        while (tail->next != NULL) {
            tail = tail->next;
        }
        tail->next = new_node;
    }
    return head;
}

// 打印链表
void print_list(Node *head) {
    while (head != NULL) {
        printf("%d ", head->value);
        head = head->next;
    }
    printf("\n");
}

int main() {
    // 创建一个空的单链表
    Node *list = create_list();

    // 在链表尾部插入元素1, 2, 3
    list = insert_tail(list, 1);
    list = insert_tail(list, 2);
    list = insert_tail(list, 3);

    // 打印链表
    print_list(list);

    return 0;
}

输出结果为:

1 2 3

代码解析:

  1. 定义链表节点结构体:
typedef struct node {
    int value;
    struct node *next;
} Node;

该结构体定义了链表的节点,包含一个整型值 value 和一个指向下一个节点的指针 next

  1. 创建空链表:
Node* create_list() {
    return NULL;
}

该函数创建一个空的单链表,并将头节点指针设置为 NULL,表示链表为空。

  1. 在链表尾部插入节点:
Node* insert_tail(Node *head, int value) {
    Node *new_node = (Node*)malloc(sizeof(Node));
    new_node->value = value;
    new_node->next = NULL;
    if (head == NULL) {
        head = new_node;
    } else {
        Node *tail = head;
        while (tail->next != NULL) {
            tail = tail->next;
        }
        tail->next = new_node;
    }
    return head;
}

该函数首先创建一个新的节点 new_node 并将其值设置为 value,然后将 new_node->next 设置为 NULL,表示该节点是当前链表的最后一个节点。

接着,函数判断链表是否为空。如果为空,则将 head 指向 new_node。否则,遍历链表找到最后一个节点,并将其 next 指针指向 new_node

最后,函数返回更新后的链表的头节点指针 head

  1. 打印链表:
void print_list(Node *head) {
    while (head != NULL) {
        printf("%d ", head->value);
        head = head->next;
    }
    printf("\n");
}

该函数从链表的头节点开始遍历,逐个打印每个节点的 value 值,直到遇到 NULL 节点。

  1. 主函数:
int main() {
    // 创建一个空的单链表
    Node *list = create_list();

    // 在链表尾部插入元素1, 2, 3
    list = insert_tail(list, 1);
    list = insert_tail(list, 2);
    list = insert_tail(list, 3);

    // 打印链表
    print_list(list);

    return 0;
}

主函数首先调用 create_list() 创建一个空的单链表,然后依次调用 insert_tail() 函数向链表尾部插入节点,最后调用 print_list() 函数打印链表。

注意:

  • 以上代码示例没有包含错误处理和内存管理,仅供学习参考。
  • 在实际应用中,应该根据具体情况进行完善。
  • 单链表是线性数据结构中最基础的一种,可以作为更复杂数据结构的基础。
C语言创建单链表并赋值:实例教程

原文地址: https://www.cveoy.top/t/topic/nwjp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录