数据结构习题(二)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)