一种支持类模版和函数模版的C++双向链表,实现了各种排序算法(排序原则可定制),包含学生信息的使用示例(VC 6.0、VS2008).
2022-04-14 15:50:50 941KB C++双向链表 类模版 函数模版 排序
1
使用纯C实现贪吃蛇小游戏,欢迎小伙伴探讨使用纯C实现的其他算法。感兴趣的伙伴可以自己也试着写一下,如果纯C不太容易,使用其他面向对象的语言实现会轻松不少。可使用上/下/左/右键或A/S/D/W键控制贪吃蛇移动方向
2022-04-13 23:15:16 17KB C语言 双向链表 贪吃蛇
1
源码,经典。 CARD *myinsert(LCARD *head, LCARD *insert) { LCARD *temp = NULL; if (head==NULL)//链表为空 { head = insert; insert->next = insert; insert->prior = insert; } else//链表非空 { temp = head; if (head->cardnum>insert->cardnum)//插入到头前边,并且把自己当作头 { head->prior->next = insert; insert->prior = head->prior; insert->next = head; head->prior = insert; head = insert; } if (insert->cardnum0cardnumcardnum)&&(temp->next!=head))//循环 { temp = temp->next; } if (temp->cardnum>insert->cardnum)//第一个条件终止的 { temp->prior->next = insert; insert->prior = temp->prior; insert->next = temp; temp->prior = insert; } else//第二个条件终止的 { head->prior->next = insert; insert->prior = head->prior; insert->next = head; head->prior = insert; } } else//大于50反向插入 { while ((temp->cardnum>insert->cardnum)&&(temp->prior!=head))//循环,第二个条件禁止跑飞 { temp = temp->prior; } if (temp->cardnumcardnum)//只有第一个条件可以终止的 { temp->next->prior = insert; insert->next = temp->next; insert->prior = temp; temp->next = insert; } } } //printf("%d\t%d\n", insert->id, insert->cardnum); return head; } void swap_id(SWID *sw) { LCARD *temp = sw->head; if (sw->head->cardnum==sw->swapcardnum) { printf("out person cardnum=%d\n", sw->head->id); sw->head->id = sw->inID; return ; } if ((sw->swapcardnum0)cardnum!=sw->swapcardnum)&&(temp->next!=sw->head)) { temp = temp->next; } if (temp->cardnum==sw->swapcardnum) { printf("out person cardnum=%d\n", sw->head->id); temp->id = sw->inID; } } else { while ((temp->cardnum!=sw->swapcardnum)&&(temp->prior!=sw->head)) { temp = temp->prior; } if (temp->cardnum==sw->swapcardnum) { printf("out person cardnum=%d\n", sw->head->id); temp->id = sw->inID; } } } LCARD *mydel(LCARD *head, LCARD *del) { LCARD *temp = NULL; if (head==NULL)//没有链表 { printf("there is no card\n"); } else//有链表 { if(head->next==head)//链表里就有一个节点并且为头结点 { if (head->cardnum==del->cardnum) { free(head); head = NULL; } else { printf("in mydel error\n"); } } else//链表里有超过一个的节点 { temp = head; if (del->cardnum0cardnum!=del->cardnum)&&(temp->next!=head)) { temp = temp->next; } if (temp->cardnum==del->cardnum) { temp->prior->next = temp->next; temp->next->prior = temp->prior; free(temp); } } else//反向删除 { while ((temp->cardnum!=del->cardnum)&&(temp->prior!=head)) { temp = temp->prior; } if (temp->cardnum==del->cardnum) { temp->prior->next = temp->next; temp->next->prior = temp->prior; free(temp); } } } } return head; }
1
试设计一个实现下述要求的Locate运算的函数。设有一个带头结点的双向链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freg。所有结点的freg初始都为0。每当在链表上进行一次Locate(L,x)操作时,令元素值为x的结点的访问频度freg加1,并将该结点前移,链接到与它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。
2022-03-12 22:08:23 2KB 双向链表
1
本项目的制作除了新建、插入、删除显示信息条外,附加密码锁、用户模式与客服模式,信息内容齐全,值得学习!!!!!!
2022-03-07 23:29:28 57KB flight
1
微软面试题,输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。适合新手入门结构清晰易懂
2022-01-11 15:57:03 3KB 二叉搜索树 双向链表
1
原创C语言实现词频统计,使用通用数据类型的双向链表进行缓存,自动拆分单词,,可通过命令行一次性读取多个文本,分别输出统计结果,简单实用。
2022-01-06 22:02:50 506KB 数据结构 c语言
1
使用C语言编写,将二叉树转换成双向链表源代码,记录学习,分享给有需要的人。
2021-12-21 18:01:02 7KB c语言 链表 二叉树
1
由Java编写的一个学生成绩管理系统.它是结构为:.txt文本作为数据库 \使用字符流输入\数据结构为:双向链表 非常经典哦.特别想学IO文件还有想学习双向链表操作的朋友很参考价值;主文件是:MainPro.java
2021-12-19 12:00:54 33KB Java .txt文本数据库 双向链表 字符流
1
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 包含二叉树的建立,测试输出。。可直接运行。。
2021-12-15 23:53:31 2KB Tree2list
1