原文链接(前期博客)
[双向带头循环链表]: https://blog.51cto.com/u_15515702/5301627
### 问题说明
1.链表节点的数据域是整数类型,无法通用
2.由问题1导致,节点的插入,查找等一些列方法都是基于整数的比对和修改,无法通用
### 改进方案
1.将节点的数据域设置为泛型指针(void *),这样节点的数据域就可以是任何数据类型,带来的问题是节点的数据域需要用户自己申请维护。
2.修改接口:
a.取消打印接口(ListPrint),原因是链表模块本身不关心链接节点的数据域,所以链表模块不需要提供打印数据域的接口。
b.取消增容接口(BuyListNode),链表不关心容量,节点个数不限,节点由用户申请维护,链表模块本身只负责管理节点。
c.修改插入接口,插入的是链表的节点对象,而非其他元素。
d.修改查找接口,查找基于节点数据域的地址,而非数据域中的元素,理由是链表模块只知道节点的数据域的地址,而不知道数据域的类型和类容。
e.增加节点遍历接口,遍历每一个节点,并为每一个节点调用用户传入的函数指针。
f.增加链表判空接口。