77范文网 - 专业文章范例文档资料分享平台

数据结构精品课程习题(3)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

5、已知带表头的单链表L,简述下列对L链表操作算法的功能。 Status a(L) {

if (L {L-﹥next&&L-﹥next-﹥next} {

Q=L-﹥nwxt; L-﹥next=Q-﹥next; P=Q

While(P-﹥next)p=p-﹥next; P-﹥next=Q Q-﹥next=NULL; } return OK }

6、已知带表头的循环链表L,简述下列对L链表操作算法的功能。 void BB(s,q)/* s、q是指向结点类型的指针*/{ P=s;

While(P-﹥next!)=q P=P-﹥next; P-﹥next=s; }

Void AA(pa,pb)/*pa、pb是指向单向循环表中的两个结点的指针*/{BB(pa,pb); BB(pb,pa) }

7、分别画出线性表L=(a,b,c)存储在单链表、循环链表、双向循环链表中的示意图。

8、哪些链表从尾指针出发可以访问到链表中的任意结点? 四、设计题

1、用类C语言写出在顺序存储条件下,初始化线性表L的算法:Initiate(L) 2、用类C语言写出在顺序存储条件下,求线性表L的长度的算法:

11

Length(L)

3、用类C语言写出在顺序存储条件下,读线性表L的第i个元素的算法: GET(L,i)

4、设某带头结点的单链表的结点结构说明如下: typedef struct nodel { int data;

struct nodel *next; }node;

试设计一个算法:void copy (node *headl,node *head2),将以headl为头指针的单链表中。

5、没有两个按升序排列的单链表X和Y,其实指针分别为p,q,结点结构说明如下:

typedef struct nodel { intadta;

struct nodel * next }node;

试设计一个算法void concat(node *p, *q)将它们合并成一个以 P为头指针的链表Z,使其仍然有序。

6、用类C语言写出在顺序存储条件下,将线性表L中的第i个元素删除的算法: DELETE(L,i)

7、用类C语言写出在顺序存储条件下,将X插入顺序表La的算法,La表中的元素是递增有序,有序表存储在a数组中: insert0rderlist(&a , X)

8、用类C语言写出在链式存储条件下,将单链表L1的元素连接在单链表L2的尾部的算法: Link(L1,L2)

9、用类C语言写出在链式存储条件下,删除单链表L中值大于max或min的元

12

素算法:

Delete9(L, max, min)

10、用类C语言写出在链式存储条件下,删除单链表L中值相同的多余元素(使链表中元素的值均不相同)的算法: Delete10(L)

11、用类C语言写出顺序表的逆置的算法,即利用原来的顺序表将线性表达式L=(a1, a2, a3,? an)逆置为L=(an,?a3, a2, a1): move11(L)

12、用类C语言写出单链表的逆置的算法,即利用原来的顺序表将线性表L=(a1, a2, a3,? an)L=(an,?a3, a2, a1): move12(L)

13、设单链表A=(a1, a2, a3,? an)和B=(bn,?b3, b2, b1),用类C语言编写将A与B合并为链表C的算法。即:

C=(a1 ,b1, a2,b2, a3,b3,? ,an,bn,bn+1,?bm)当n≥ C=(a1 ,b1, a2,b2, a3,b3,? ,am,bm,am+1,?an)当n﹤m

其中n和m不是已知条件,C表A表和B表的结点空间Mpass13(A,B,C) 14、设单链表A=(a1,a2,a3?an)和B=(b1,b2,b3?bn)都是有序表(按值从小到大排列),用类C语言编写写将A与B合并为链表C的算法,C表也要求从小到大。

其中n和m不是已知条件,C表A表和B表的结点空间。 Mpass14(A,B,C)

15、已知A、B、C是三个按值从小到大有序的单链表,对A表进行如下操作删除那些既在B表又在C表中的元素。 Delete15(A,B,C)

16、已知指针S指向单铅循环链表的一个结点,该结点有前导结点,写出删除该结点的直接前导结点的算法。 Deletel16(s)

17、已知单链表L是按值从小到大有序,将X插入到L链表中,并保持L链表有序,写出算法。 Insert(L,X)

13

18、已知单链表L和指向L表中的一个结点的指针R,从R将L表分成两个单链表,要求R结点作为后一个链表的首结点。 Bin(L,R)

19、任意给出正整数m和n,将m个数1,2,3?m顺时针排列成环型,从1开始顺时针开始计数,将数到的第n个数输出,再继续从1数到n,并将第n个数输出,依次将这m个数全部输出。例如,例如,当=10,n=3时,输出的数是3,6,9,2,7,1,8,5,10,4。 Josephus(L,m,n)

第三、四、五章 栈和队列、串、数组和广义表

一、单项选择题

1、栈是限定在( )处进行插入或删除操作的线性表。 A.端点

B.栈底

C.栈顶

D.中间

2、在栈顶一端可进行的全部操作是( )。

14

A.插入 B.删除 C.插入和删除 D.进栈

3、4个元素按A、B、C、D顺序连续进S栈,进行Pop(S,x)运算后,x的值是( )。 A.A

B.B

C.C

D.D

4、栈的特点是( )。 A.先进先出

B.后进先出

C.后进后出

D.不进不出

5、栈结构的元素个数是( )。 A.不变的

B.可变的

C.任意的

D.0

6、4个元素进S栈的顺序是A、B、C、D,进行两次Pop(S,x)操作后,栈顶元素的值是( )。 A.A

B.B

C.C

D.D

7、同一个栈内各元素的类型( )。 A.必须一致

B.可以不一致

C.不能一致

D.不必不一致

8、顺序栈存储空间的实现使用( )存储栈元素。 A.链表

B.数组

C.循环链表

D.变量

9、一个顺序栈一旦说明,其占用空间的大小( )。 A.已固定

B.可以改变

C.不能固定

D.动态变化

10、栈是一个( )线性表结构。 A.不加限制的

B.加了限制的

C.推广了的

D.非

11、栈与一般线性表的区别主要在( )方面。 A.元素个数

B.元素类型

C.逻辑结构

D.插入、删除元素的位置

12、顺序栈是空栈的条件是( )。 A.top= =0

B.top= =1

C.top= =-1

D.top= =m

13、初始化一个空间大小为5的顺序栈Ss后,Ss-﹥top的值( ) A.是0

B.不定

C.不再改变

D.动态变化

14、元素A、B、C、D依次进顺序栈后,栈底元素是( )。 A.A

B.B

C.C

D.D

15、元素A、B、C、D依次进顺序栈后,栈底元素是( ) A.A

B.B

C.C

D.D

15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构精品课程习题(3)在线全文阅读。

数据结构精品课程习题(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/400909.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: