cout<<"链表已全部显示"<<endl;break;default:break; } }voidClearStudentList() {switch(ClearList(&g_pStudent)) {caseELIST_PARAM: cout<<"链表不存在"<<endl;break;caseELIST_NOTEXIST: cout<<"链表清空链表失败"<<endl;break;caseELIST_OK: cout<<"清空链表成功"<<endl;break;default:break; } }...
} MyListIterator; //创建链表 MyList * createMyList(); //创建链表,带有相等参数,用于查找 MyList * createMySearchList(int(*equal)(void * a, void * b)); //释放链表 void freeMyList(MyList * list); //插入在尾部 void myListInsertDataAtLast(MyList* const list, void* const data); //...
void (*todo)(void *one_data));//安全遍历(觉得在这里这个方法意义不大) void (*invert)(struct slist_info *info);//反转链表 int (*is_dead_loop)(struct slist_info *info);//判断是否有死环,是返回1,不是返回0 }; #define slist_is_empty(info) ((info)->first == NULL) //链表是否为...
这是在通用链表的基础上实现的映射,关于链表的实现参见 注意映射中只存储了key和value的指针,没有储存实际的数据。 对于新的key类型来说,需要自定义HashCode函数和equal函数。 在HashSet的实现中给出了几个常见的hashCode函数和equal函数 头文件:myHashMap.h [cpp] view plain copy ...
Generic double circular linked list - 通用双向循环链表C语言实现 cheungmine 双向循环链表是计算机数据结构里面最基础的一种。我采用C语言实现,可以存储任何数据类型。这个双向链表(dlist)用来替换单向链表(list),可以获得更好的效率。 本文内容不提供任何保障,任何人在不声明版权所有的前提下本文内容可以被用于任何目...
C语言实现通用数据结构之通用链表 C语⾔实现通⽤数据结构之通⽤链表 本⽂实例为⼤家分享了c语⾔实现通⽤数据结构之通⽤链表的具体代码,供⼤家参考,具体内容如下 忽然想起来,⼤概在两年之前学习C语⾔的时候,曾经⽤C语⾔写过⼀些通⽤的数据结构。主要也就实现了链表、队列、椎、Hash...
C语言中实现通用双链表(类似C++模版的功能) 这篇文章,本来写了快两个小时了,可是提交的时候,居然博客园崩溃了。信息全部都丢失了。 既然这样,那就不啰嗦了,直接拷贝代码。 插入代码的功能也坏了,那就直接复制把: /** * C 和 C++ 的谁好谁坏的争论还在不断的继续,C语言的使用非常的广范,很多大型的系统都...
C语言实现通用链表初步(四)---双向链表 在前面的文章中,我们讨论了如何实现通用类型的链表,方法是用void *类型的指针,指向数据。那么还有其他的方法吗(不考虑内核链表)? 答案是肯定的。用零长数组也可以实现。 struct node_info { struct node_info *next; ...
C语言实现通用链表初步(二) 接着上次的内容,我们继续! 还是无头单向非循环链表。假如要删除某个节点,如何实现? //删除成功返回0,失败返回-1 int slist_del(struct node_info *node, struct slist_info *info) { assert(info != NULL && node != NULL);...
C语言实现通用链表初步(三)---单元测试 前两节,我们已经完成了链表的一些操作,快来测试一下吧。 这里使用的单元测试工具名字叫“check”。 START_TEST(my_slist_1) { struct student students[8] = {{"WangDong",18},{"LiuMing",19},{"SunYazhou",21},{"ChenYu",27},{"LiuXuewei",28},\ ...