单链表函数实现与操作:创建、打印、插入与删除

需积分: 9 6 下载量 138 浏览量 更新于2024-11-29 收藏 2KB TXT 举报
本文档主要介绍了单链表在C语言中的基本操作,包括链表的创建、遍历以及插入和删除节点的功能。单链表是一种数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。在提供的代码中,我们看到了以下几个关键部分: 1. **定义类型**: - `typedef`用于创建别名,使得代码更易读。例如,`typedef int Elemtype;`表示`Elemtype`是整型,而`typedef struct LNode* LinkList;`将链表头结点的指针类型定义为`LinkList`。 2. **链表创建函数** (`CreateList`): - 这个函数接收一个`LinkList`类型的参数`L`,并根据用户输入的节点数量动态分配内存。 - 首先,通过`malloc`分配一个头结点,然后循环`n`次(用户输入的节点数量),每次分配一个新的节点,输入节点的数据,然后将其添加到链表尾部。最后返回头结点指针`L`。 3. **打印链表函数** (`PrintList`): - 通过遍历链表,依次输出每个节点的数据。函数接受一个`LinkList`类型的参数`L`,从头结点开始,逐个访问节点并打印其数据。 4. **在指定位置插入节点函数** (`ListInsert`): - 接收三个参数:`L`(链表头)、`i`(插入位置索引)和`e`(要插入的新数据)。该函数找到正确的位置插入新节点,并返回操作结果。 - 使用两个指针`p`和`j`来定位插入位置,当`j`等于`i-1`时,表示找到了插入位置,插入新节点并返回`OK`。 5. **删除指定位置节点函数** (`ListDelete`): - 类似于`ListInsert`,这个函数接收相同参数,但删除`i`位置的节点,更新前后节点的指针,释放已删除节点的内存,并返回操作结果。 6. **主函数`main`**: - 在这里,没有实际的主程序调用链表操作,但如果在实际应用中,可能会在这里创建链表、插入和删除节点,然后打印链表内容。 这些函数共同实现了对单链表的基本操作,可用于实现各种基于链表的应用场景,如栈、队列等数据结构,或者用于处理需要频繁插入和删除数据的情况。理解并掌握这些函数是单链表编程的基础。