C语言实现链表创建与删除操作
需积分: 13 142 浏览量
更新于2024-09-18
收藏 2KB TXT 举报
该资源是关于使用C语言实现链表数据结构的程序,涉及链表的建立和删除操作。在程序中定义了链表节点结构`LNode`,包含学号`num`(长度为11)、姓名`name`(长度为21)、成绩`score`和指向下一个节点的指针`next`。此外,还定义了一个结构体`LinkList`来存储链表的头节点、尾节点和长度。程序提供了创建链表节点的`MakeNode_L`函数和初始化链表的`InitList`函数,以及创建链表的`CreatList`函数。
详细说明:
1. **链表节点定义**:`LNode` 结构体用于定义链表中的节点,每个节点包含一个整型变量`score`,两个字符数组`num`和`name`,以及一个指向下一个节点的指针`next`。这些字段用于存储学号、姓名和成绩信息。
2. **指针类型定义**:`Link` 和 `*Link` 分别是结构体 `LNode` 的指针类型,它们被用作函数参数和链表操作中的指针。
3. **状态枚举**:`Status` 是一个枚举类型,包含两个值 `OK` 和 `ERROR`,分别表示操作成功和失败。
4. **链表结构体定义**:`LinkList` 结构体包含了链表的头节点`head`、尾节点`tail`以及链表的长度`len`。这个结构体用于管理整个链表的状态。
5. **MakeNode_L 函数**:此函数用于创建一个新的链表节点。它接受一个指向链表节点指针的指针`p`和一个要插入的元素`e`,如果创建成功,它将返回 `OK`,并使 `*p` 指向新创建的节点。
6. **InitList 函数**:初始化链表,接受一个 `LinkList` 类型的指针`p`。该函数会创建一个空链表,将头节点和尾节点设置为同一个节点,并将链表长度设置为0。
7. **CreatList 函数**:创建链表,接受一个 `LinkList` 类型的指针`p`。用户通过输入学号、姓名和成绩来添加节点。当用户输入负分数时,链表添加操作终止。每个新节点通过调用 `MakeNode_L` 函数创建,然后添加到链表中。
8. **输入处理**:在 `CreatList` 函数中,使用 `gets` 和 `scanf` 函数从用户那里获取学号、姓名和成绩信息。`ch=getchar()` 用于读取用户输入后留下的换行符。
通过以上函数,用户可以构建一个包含学生信息的链表,并能根据用户输入动态添加节点。然而,程序中没有提供删除节点的功能,这需要另外编写相应的函数来完成。同时,为了保证程序的健壮性,还需要考虑错误处理和内存管理,例如检查内存分配是否成功,以及在不再需要节点时释放其内存。
2016-12-26 上传
2013-01-21 上传
2024-09-12 上传
2022-02-23 上传
2012-03-25 上传
2010-05-11 上传
2009-12-06 上传
Ylei039017
- 粉丝: 0
- 资源: 1
最新资源
- PROTEL99SE.pdf
- 谭浩强c语言 pdf版(带书签)
- Div+CSS 布局大全.pdf
- 写给大家看的面向对象编程书 第3版 (最通俗易懂的面向对象著作)
- 遗传算法源程序(c语言)
- java 图书馆管理系统论文
- netbackup_unix 中文命令手册
- mini2440 root_qtopia 文件系统启动过程分析
- 电子秤标定方法 各种电子称 大全
- postfix权威指南
- Weblogic管理指南
- [游戏编程书籍].2_OpenGL.Extensions.-.Nvidia.pdf
- 毕业设计(物流配送管理)
- 游程编码 matlab实现
- 你必须知道的.NET(PDF文档)
- Android+eclipse环境配置