您的位置:首页 > 汽车 > 新车 > 企业信息公示网站_综合性门户网站是什么意思_深圳专业seo_软文什么意思范例

企业信息公示网站_综合性门户网站是什么意思_深圳专业seo_软文什么意思范例

2024/10/22 14:09:25 来源:https://blog.csdn.net/lwcwam/article/details/143097114  浏览:    关键词:企业信息公示网站_综合性门户网站是什么意思_深圳专业seo_软文什么意思范例
企业信息公示网站_综合性门户网站是什么意思_深圳专业seo_软文什么意思范例

【趣学C语言和数据结构100例】

问题描述

51.在一个递增有序的单链表中,存在重复的元素。设计算法删除重复的元素,例如(7.10.10.21.30.42.42.42.51.70)将变为(7.10.21.30.42.51.70)。

52.设A 和 B 是两个单链表(带头结点),其中元素递增有序。设计一个算法从 A 和B中的公共元素产生单链表 C,要求不破坏 A、B 的结点。

53.两个整数序列 A=a1,a2,a…,a和 B=b,b2,b.…,b已经存入两个单链表中,设计一个算去,判断序列 B是否是序列 A 的连续子序列。

54.设计一个算法用于判断带头结点的循环双链表是否对称

55.有两个循环单链表,链表头指针分别为 hl 和 h2,编写一个函数将链表 h2 链接到链表11 之后,要求链接后的链表仍保持循环链表形式。

代码分析

51.有序的单链表,删除重复的元素
分析:无返回值+对链表操作,故函数名为void 函数名(LiukLIist L),定义节点p和q(p当前,即L->next开始,q找重复)如果单链表为空,则直接return 0;使用while(p->next)循环遍历,使q从p的下一个开始,如果2个的值相等,则p直接指向q的下一个,跳过当前q,并且释放free(q),否则使p向后移动一位。

52.A和B两个单链表(带头结点)的公共元素
分析:返回链表+AB不操作,故函数名为LiukList 函数名(LiukLIist A,LiukLIist B),创造C链表即(LiukList C=(LiukList)malloc(sizeof)(Lnode) ,C->next=NULL),p、q 和 r,分别指向 A 链表、B 链表和新链表 C 的当前节点,使用while循环遍历,只要一个到达最后即可,使用&&,如果p的值>q的值,使q=q->next,如果q的值>p的值,使p=p->next(使小的移动,直到相等),当值相等时,进行给C,即尾插法。创造一个s节点,用来存储值在赋值给C,值先交付,使r的下一个指向此时的p,更新r到达此时C的最后一位,尾插结束,使p和q同时向后移动一位,知道结束。在结束后,在C的最后加入r->next=NULL;然后返回链表C。

53.判断序列 B是否是序列 A 的连续子序列
分析:返回值为int,对AB不操作,故函数名为int 函数名(LiukLIist A,LiukLIist B)。三个指针 p、q 和 pre,分别指向 A 链表、B 链表和 A 链表的当前节点。使用while循环遍历,代码遍历两个链表,比较 p 和 q 指向的节点数据,如果相同,则继续遍历;否则,将 q 指针重置为 B 链表的头部,并将 p 指针指向 pre 的下一个节点。直到结束,如果此时的q为空,则说明可以到达最后,说明找到了,则返回1,否则返回0。

54.判断带头结点的循环双链表是否对称
分析:返回值为bool类型,对链表不操作,故函数名为bool 函数名(LiukLIist A)。定义p,q分别指向链表的头部和尾部,使用while循环遍历,只要p!=q或者p->next!=q,一直,if(p->data==q->data),则进行同时移动,如果不相等则return 0。在结束循环为进行返回,则返回return 1。

55.链表的拆分
分析:两个循环单链表的插入连接,初步思路为,h1的最后和h2的开头连接,h1的开头和h2的尾部连接即可。返回类型为链表,A会发生变化,故函数名为LiukList 函数名(LiukList &h1,LiukList &h2),在函数中使p和q分别先找到h1和h2的尾部。找到后令p的下一步指向h2,令q的下一步指向h1,然后返回h1。

//循环链表找尾部:
while(p->next!=头部){p=p->next;
}

代码实现

#include <stdio.h>
#include <cstring>
#include <ctype.h>
#include <math.h>
int main() {

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com