C语言实现正序链表创建示例

需积分: 0 0 下载量 65 浏览量 更新于2024-08-04 收藏 2KB TXT 举报
在本篇C语言示例代码中,我们将学习如何使用结构体和链表的概念来构建一个正序链表。链表是一种数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。在这个例子中,我们定义了一个名为`Node`的结构体,包含两个成员:`int data`用于存储节点值,`struct Node* next`用于指向下一个节点。 程序首先通过`#include <stdio.h>`和`#include <stdlib.h>`引入了所需的库,用于输入输出和动态内存管理。主要流程包括: 1. **初始化**: - 定义全局变量`int n`,用于存储链表的长度。 - 初始化链表的头指针`head`为`NULL`,尾指针`tail`也设为`NULL`。 2. **读取用户输入**: - 提示用户输入链表的长度,并使用`scanf`函数获取输入。 - 遍历循环次数等于用户输入的`n`,动态分配内存给新的节点。 3. **节点创建与插入**: - 在循环内部,首先动态分配内存。如果内存分配失败,程序会显示错误信息并退出。 - 用户输入节点值后,将其存储在新节点的数据域`p->data`。 - 如果链表为空(即`head`为`NULL`),新节点成为头结点;否则,将新节点插入到当前尾结点的后面,通过设置`tail->next = p`实现。 4. **链表遍历与输出**: - 创建成功后,使用`p = head`初始化遍历指针,然后在`while`循环中,逐个输出节点的值,直到`p`变为`NULL`,表明遍历结束。 5. **程序结束**: - 返回`0`,表示程序正常执行完毕。 通过这个示例,读者可以了解如何在C语言中创建和操作正序链表,包括节点的创建、插入以及链表的遍历和输出。这对于理解和实践基础数据结构非常重要,对于编写处理大量数据或需要高效插入和访问的程序尤其有用。