线性表编程练习题.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《线性表编程练习题.pdf》由会员分享,可在线阅读,更多相关《线性表编程练习题.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-1、假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。输入:1 2 5 6 83 4 7 9 10输出:10 9 8 7 6 5 4 3 2 1测试数据输入:7 9 10 118 12 13 14输出:14 13 12 11 10 9 8 7链表翻转2.带头结点且头指针为 ha 和 hb 的两线性表 A 和 B 分别表示两个集合。两表中的元素皆为递增有序。请写一算法求 A 和 B 的并集 AUB。要求该并集中的元素仍保持递增有序。且要利用 A 和 B 的原有结点空间。输
2、入:1 2 5 6 82 5 7 9输出:1 2 5 6 7 8 9测试数据输入:7 9 10 118 9 10 11输出:7 8 9 10 11.z.-3.知 L1、L2 分别为两循环单链表的头结点指针,m,n 分别为 L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。4.顺序构造线性表 LA 与 LB 的结点关键字为整数。LA 与 LB 的元素按非递减有序,线性表空间足够大。试用类 PASCAL 语言给出一种高效算法,将 LB 中元素合到 LA 中,使新的 LA 的元素仍保持非递减有序。高效指最大限度的防止移动元素。5.不带头结点的线性链表 lis
3、t,链表中结点构造为 data、link,其中data 为数据域,link 为指针域。请写一算法,将该链表按结点数据域的值的大小从小到大重新。要求过程中不得使用除该链表以外的任何链结点空间。6.设 L 为单链表的头结点地址,其数据结点的数据都是正整数且无一样的,试设计利用直接插入的原则把该链表整理成数据递增的有序单链表的算法。7.设 Listhead 为一单链表的头指针,单链表的每个结点由一个整数域 DATA 和指针域 NE*T 组成,整数在单链表中是无序的。编一PASCAL 过程,将 Listhead 链中结点分成一个奇数链和一个偶数链,分别由 P,Q 指向,每个链中的数据按由小到大排列。程
4、序中不得使用NEW 过程申请空间。8.线性表a1 a2 a3 an按顺序存于存,每个元素都是整数,试设计用最少时间把所有值为负数的元素移到全部正数值元素前边的算法:例:*,-*,-*,*,*,-*变为-*,-*,-*,*,*。.z.-9.试编写在带头结点的单链表中删除一个最小值结点的高效算法。voiddeleteLinklist&L10.非空线性链表由 list 指出,链结点的构造为data,link.请写一算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结点。【航空航天大学 2001 四10 分】11.p 指向双向循环链表中的一个结点,其结点构造为 data、
5、llink、rlink三个域,写出算法 change(p),交换 p 所指向的结点和它的前缀结点的顺序。12.线性表(a1,a2,a3,an)中元素递增有序且按顺序存储于计算机。要求设计一算法完成:1 用最少时间在表中查找数值为*的元素。2 假设找到将其与后继元素位置相交换。3 假设找不到将其插入表中并使表中元素仍递增有序。【东北大学 1996 三(12 分)】13.设单链表的表头指针为 h,结点构造由 data 和 ne*t 两个域构成,其中 data 域为字符型。写出算法 dc(h,n),判断该链表的前 n 个字符是否中心对称。例如*y*,*yy*都是中心对称。14.两个单链表 A 和 B
6、,其头指针分别为 heada 和 headb,编写一个过程从单链表 A 中删除自第 i 个元素起的共 len 个元素,然后将单链表A 插入到单链表 B 的第 j 个元素之前。15.设线性表存于 A1.size的前 num 各分量中,且递增有序。请设计一个算法,将*插入到线性表的适当位置上,以保持线性表的有序性,.z.-并在设计前说明设计思想,最后说明所设计算法的时间复杂度。16.假设一个单循环链表,其结点含有三个域 pre、data、link。其中data 为数据域;pre 为指针域,它的值为空指针NIL;link 为指针域,它指向后继结点。请设计算法,将此表改成双向循环链表。17.递增有序的
7、单链表 A,B 分别存储了一个集合,请设计算法以求出两个集合 A 和 B 的差集 A-B即仅由在 A 中出现而不在 B 中出现的元素所构成的集合,并以同样的形式存储,同时返回该集合的元素个数。18.一个单链表中每个结点存放一个整数,并且结点数不少于 2,请设计算法以判断该链表中第二项起的每个元素值是否等于其序号的平方减去其前驱的值,假设满足则返回ture,否则返回 false.19 两个整数序列 A=a1,a2,a3,am 和 B=b1,b2,b3,bn 已经存入两个单链表中,设计一个算法,判断序列B 是否是序列 A 的子序列。【东北大学 1999 二(10 分)】20三个带头结点的线性链表A
8、、B 和 C 中的结点均依元素值自小至大非递减排列可能存在两个以上值一样的结点,编写算法对 A 表进展如下操作:使操作后的链表 A 中仅留下三个表中均包含的数据元素的结点,且没有值一样的结点,并释放所有无用结点。限定算法的时间复杂度为 Om+n+p,其中m、n 和 p 分别为三个表的长度。21.请写一个算法将顺序存储构造的线性表a1.an逆置为(an.a1)。【海事大学 1996 八(分)】22设有一个由正整数组成的无序向后单链表,编写完成以下功.z.-能的算法:1找出最小值结点,且打印该数值;2假设该数值是奇数,则将其与直接后继结点的数值交换;3 假设该数值是偶数,则将其直接后继结点删除。【
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 编程 练习题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内