![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Julo白熊
软件工程废材。
展开
-
设计一个算法,删除递增有序链表中值大于mink且小于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同 )。
题目:设计一个算法,删除递增有序链表中值大于mink且小于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同 )。思路:题目所说链表是递增的,所以符合删除条件的结点必定连在一起,所以我们可以先找到待删除区间,之后把前后两部分接起来就好了。代码如下:```cvoid deletenode(Linklist& L, int mink, int maxk){ Linklist q, p = L->next; Linklist pre= (L.原创 2020-11-03 09:33:45 · 9919 阅读 · 5 评论 -
设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间
题目:设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。代码如下:void reverse(Linklist& L){ Linklist q,p=L->next;//p为图中1结点 L -> next = NULL;//对应图中1结点后继置空 while (p) { q = p->next;//q为p后一结点,和p同样会后移 p->next = L->next;//p结点后继改为头结点的后继,刚开始为NULL,.原创 2020-11-03 09:27:49 · 15111 阅读 · 2 评论 -
已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出A与B的交集,并存放于A链表中。
题目:已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出A与B的交集,并存放于A链表中。void MergeList(Linklist& L1, Linklist& L2){//都是带头结点的链表 Linklist L3, p1, p2, p3, q; p1 = L1->next; p2 = L2->next; L3 = L1;//使用第一条链的头结点 p3 = L3; while (p1 && p2)//只要一条链到尾就跳出 {原创 2020-10-28 22:36:31 · 17841 阅读 · 14 评论