线性表编程练习题

线性表编程练习题

ID:6882723

大小:41.00 KB

页数:11页

时间:2018-01-29

线性表编程练习题_第1页
线性表编程练习题_第2页
线性表编程练习题_第3页
线性表编程练习题_第4页
线性表编程练习题_第5页
资源描述:

《线性表编程练习题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。输入:12568347910输出:10987654321测试数据输入:7910118121314输出:14131211109872.带头结点且头指针为ha和hb的两线性表A和B分别表示两个集合。两表中的元素皆为递增有序。请写一算法求A和B的并集AUB。要求该并集中的元素仍保持递增有序。且要利用A和B的原有结点空间。输入:125682579输出:1256789测试数据输入:7910118910

2、11输出:78910113.知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。4.顺序结构线性表LA与LB的结点关键字为整数。LA与LB的元素按非递减有序,线性表空间足够大。试用类PASCAL语言给出一种高效算法,将LB中元素合到LA中,使新的LA的元素仍保持非递减有序。高效指最大限度的避免移动元素。5.已知不带头结点的线性链表list,链表中结点构造为(data、link),其中data为数据域,link为指针域。请写一算法,将该链表按结点数据域的值的大小从小到大重新

3、链接。要求链接过程中不得使用除该链表以外的任何链结点空间。6.设L为单链表的头结点地址,其数据结点的数据都是正整数且无相同的,试设计利用直接插入的原则把该链表整理成数据递增的有序单链表的算法。7.设Listhead为一单链表的头指针,单链表的每个结点由一个整数域DATA和指针域NEXT组成,整数在单链表中是无序的。编一PASCAL过程,将Listhead链中结点分成一个奇数链和一个偶数链,分别由P,Q指向,每个链中的数据按由小到大排列。程序中不得使用NEW过程申请空间。8.已知线性表(a1a2a3…an)按顺序存于内存,每个元素都是整数,试设计用最少时间把所有值为负

4、数的元素移到全部正数值元素前边的算法:例:(x,-x,-x,x,x,-x…x)变为(-x,-x,-x…x,x,x)。9.试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法。voiddelete(Linklist&L)10.已知非空线性链表由list指出,链结点的构造为(data,link).请写一算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结点。【北京航空航天大学2001四(10分)】11.已知p指向双向循环链表中的一个结点,其结点结构为data、llink、rlink三个域,写出算法change(p),交换p所指向的

5、结点和它的前缀结点的顺序。12.线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法完成:(1)用最少时间在表中查找数值为x的元素。(2)若找到将其与后继元素位置相交换。(3)若找不到将其插入表中并使表中元素仍递增有序。【东北大学1996三(12分)】13.设单链表的表头指针为h,结点结构由data和next两个域构成,其中data域为字符型。写出算法dc(h,n),判断该链表的前n个字符是否中心对称。例如xyx,xyyx都是中心对称。14.已知两个单链表A和B,其头指针分别为heada和headb,编写一个过程从单链表A中删除自

6、第i个元素起的共len个元素,然后将单链表A插入到单链表B的第j个元素之前。15.设线性表存于A[1..size]的前num各分量中,且递增有序。请设计一个算法,将x插入到线性表的适当位置上,以保持线性表的有序性,并在设计前说明设计思想,最后说明所设计算法的时间复杂度。16.假设一个单循环链表,其结点含有三个域pre、data、link。其中data为数据域;pre为指针域,它的值为空指针(NIL);link为指针域,它指向后继结点。请设计算法,将此表改成双向循环链表。17.已知递增有序的单链表A,B分别存储了一个集合,请设计算法以求出两个集合A和B的差集A-B(即

7、仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。18.已知一个单链表中每个结点存放一个整数,并且结点数不少于2,请设计算法以判断该链表中第二项起的每个元素值是否等于其序号的平方减去其前驱的值,若满足则返回ture,否则返回false.19.两个整数序列A=a1,a2,a3,…,am和B=b1,b2,b3,…,bn已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的子序列。【东北大学1999二(10分)】20.已知三个带头结点的线性链表A、B和C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。