1、打开ubuntu并在某个位置开启一个终端。这里创建的链表是一个企业常用的链表,也是内核使用的链表结构。
2、新建文件enterprise_list.h、enterprise_list.c、test.c分别作为链表头文件、源文件以及测试文件。
3、这里采用指针偏移的方式将数据域与指针域分离的方式。定义一个结点以及一个链表结构体。
4、声明操作链表的函数,包括初始化、插入数据、删除数据、查找数据、打印链表等。
5、在函数实现中,添加一个结构体,作为链表中的数据结构。
6、然后依次对头文件中的函数进行实现。在初始化中,包括创建链表指针,初始化头节点与长度。插入结点包括(1)查询插入位置的前一结点;(2)插入结点。
7、删除结点也需要使用与添加结点类似的操作。查询结点位置是前两方法的子步骤,只是需要返回结点的索引。
8、接着是返回链表大小、打印链表以及释放链表。链表大小已经定义在结构体中,只需要在添加删除过程中维护这个值即可。打印链表需要添加一个打印结点的函数指针,释放链表只需要调用free函数即可、
9、最后是测试阶段。测试代码中需要定义一个预添加的结构体对象,然后一次创建多个对象进行测试。
10、测试的输出结果如下。说明我们的代码没有问题。