数据结构精品课程习题 联系客服

发布时间 : 星期六 文章数据结构精品课程习题更新完毕开始阅读5e67fcc48bd63186bcebbca1

素算法:

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

16、经过下列栈的运算后勤工作GetTop(s)的值是( )。 InitStack(s);Push(s,a);Push(S,b),Pop(s); A.a

B.b

C.1

D.2

17、经过下列栈的运算后,X的值是( )。 InitStack (s);Push(s,a);Push(s,b),GetTop(S);Pop(s,x); A.a

B.b

C.1

D.2

18、经过下列栈的运算后,X的值是( )。 InitStack(s);Push(s,A);Pop(s,X),Push(s,B);Pop(s,X); A.a

B.b

C.1

D.2

19、经过下列栈的运算后EmptyStack(s)的值是( )。 InitStack(s);Push(s,A);Push(s,B);Push(s,x);Pop(s,x); A.a

B.b

C.1

D.2

20、经过下列栈的运算后EmptySTACK(s)的值是( )。 InitStack(s);Push(s,A);Push(s,B);Pop(s,x);GetTop(s); A.a

B.b

C.1

D.2

21、队列是限定在( )处进行插入操作的线性表。 A.端点

B.队头

C.队尾

D.中间

22、队列是限定在( )处进行删除操作的线性表。 A.端点

B.队头

C.队尾

D.中间

23、4个元素按A、B、C、D顺序连续进队Q,队的头元素是( ) A.A

B.B

C.C

D.D

24、4个元素A、B、C、D顺序连续进队Q,队的尾元素的值是( )。 A.A

B.B

C.C

D.D

25、队列的特点是( )。 A.先进先出

B.后进先出

C.先进后出

D.不进不出

26、队列中的元素个数是( )。 A.不变的

B.可变的

C.任意的

D.0

27、4个元素进Q队列的顺序是A、B、C、D,进行OutQueue(Q)操作后,队头元素是( )。 A.A

B.B C.C

16

D.D