数据结构习题(二)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构习题(二)

一、填空题

1. 队列的插入操作在 进行,删除操作在 进行。

2. 在栈结构中,允许插入、删除的一端称为 , 另一端称为 。

3. 假设以S 和X 分别表示进栈和退栈操作,则对输入序列a,b,c,d,e 进行一系列栈操作SSXSXSSXXX 之后,得到的输出序列为 。

4. 一个不带表头结点且不空链栈的栈顶指针是top ,栈中元素的值域为data ,则栈顶元素即为__ ____ _。

5. 一个带表头结点链栈的栈顶指针是top ,每个结点包含值域data 和指针域next ,当进行出栈操作时,则需要修改指针域的操作为 。

6.设数组S[M]存储一个顺序栈的元素,变量top 指示下一个入栈元素在数组中的下标位置,栈为空的条件是___ _____,栈为满的条件是___ _____。

7. 在一个用一维数组a[N]存储的顺序循环队列中,该队列中的元素最少为 个,最多为 个。

8. 在具有SIZE 个数据元素的顺序存储的循环队列中,假定front 和rear 分别指示队列里第一个元素的前一位置和最后一个元素的位置,则判断队空的条件是________ ;队满的条件是 ;队中元素个数为 。

9. 空串是 ;空格串是 。

10. 设两个串S1和S2,求S1在S2中首次出现的运算称为_______ _。

11.串中任意个连续的字符组成的子序列称为该串的 。

12. 假设一个10阶的下三角矩阵A 按列优顺序压缩存储在一维数组C 中,则C 数组的体积最小应为

13. 在一个稀疏矩阵中,每个非零元素所对应的三元组包括该元素的_____________、___________和___________三项。

14. 广义表A=(a,(b),(),(c,d,e))的长度为 ;已知广义表的表头为a ,表尾为(b,c),则此广义表为 。

15. 如图所示,用一个

体积为MAX 的数组

同时构造两个栈S1和

S2,栈S1的栈底是下

标为0的这一端,栈S2的栈底是下标为MAX-1的这一端,整型变量top1标记栈S1的栈顶位置,整型变量top2

标记栈S2的栈顶位置。两个栈的初始状态为:top1=0,top2=MAX-1。则栈满的条件

为 。

012MAX-1

二、选择题

1.在栈中存取数据的原则是;在队列中存取数据的原则是。

A. 先进先出

B. 后进先出

C. 后进后出

D. 随意进出

2.一个栈的输入序列为A B C D E,则下列序列中不可能是栈的输出序列的是_______。

A. BCDAE

B. DCABE

C. BCADE

D. AEDCB

3.若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的不同排列个数为。

A. 4

B. 5

C. 6

D. 7

4.假定利用数组a[N]顺序存储一个栈,用top表示下一个入栈元素的下标位置,top==0表示栈空,并已知栈未满,当元素x进栈时所执行的操作为。

A. a[--top]=x;

B. a[++top]=x;

C. a[top++]=x;

D. a[top--]=x;

5.向一个不带表头结点栈顶指针为top的链栈中插入一个s所指结点时,执行________。

A. top->next=s;

B. s->next=top->next;top->next=s;

C. s->next=top;top=s;

D. s->next=top;top=top->next;

6.已知循环队列的存储空间为数组data[21],假定front和rear分别指示队列里第一个元素的前一位置和最后一个元素的位置,且front的值为8,rear的值为3,则该队列的当前长度为。

A. 5

B. 6

C. 16

D. 17

7.在栈中出栈操作的时间复杂度为。

A. O(1)

B. O(log2n)

C. O(n)

D. O(n2)

8.串的长度是。

A. 串中不同字符的个数

B. 串中不同字母的个数

C. 串中所含字符的个数且字符个数大于零

D. 串中所含字符的个数

9.设有说明char S2[]= “A _TEACHER”;则strlen(S2)的返回值为________。

A. 1

B. 8

C. 9

D. 11

10.在C语言中,定义二维数组数组A[5][6]每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[4][4]的地址为。

A. 1140

B. 1145

C. 1120

D. 1125

11.在c语言中,已知字符数组A[8][10]中元素A[2][1]的地址为1000,则元素A[0][0]的地址为______。

A. 972;

B. 979

C. 980

D. 982

12.对广义表L=((a,b),c,d)进行操作tail(head(L))的结果是。

A. (c,d)

B. (d)

C. b

D. (b)

13.从广义表LS=((p,q),r,s)中分解出原子q的运算是。

A. tail(head(LS))

B. head(tail(head(LS)))

C. head(tail(LS))

D. tail(tail(head(LS)))

三、阅读程序

1、设在头文件stack.h中已定义如下函数,原型为:

初始化栈:void InitStack(SeqStack *s)

入栈:void Push(SeqStack *s, datatype e)

出栈:datatype Pop(SeqStack *s)

判栈空:int EmptyStack(SeqStack *s)

相关文档
最新文档