数据结构习题及参考答案
习题1
一、单项选择题
1. 数据结构是指( )。
A.数据元素的组织形式 B.数据类型
C.数据存储结构 D.数据定义
2. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为( )。
A.存储结构 B.逻辑结构
C.链式存储结构 D.顺序存储结构
3. 树形结构是数据元素之间存在一种( )。
A.一对一关系 B.多对多关系
C.多对一关系 D.一对多关系
4. 设语句x++的时间是单位时间,则以下语句的时间复杂度为( )。
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
x++;
A.O(1) B.O(2n) C.O(n) D.O(3n)
5. 算法分析的目的是(1),算法分析的两个主要方面是(2)。
(1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系
C.分析算法的效率以求改进 D.分析算法的易懂性和文档性
(2) A.空间复杂度和时间复杂度 B.正确性和简明性
C.可读性和文档性 D.数据复杂性和程序复杂性
6. 计算机算法指的是(1),它具备输入,输出和(2)等五个特性。
(1) A.计算方法 B.排序方法
C.解决问题的有限运算序列 D.调度方法
(2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性
C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性
7. 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要( )。
A.低 B.高 C.相同 D.不好说
8. 数据结构作为一门独立的课程出现是在( )年。
A.1946 B.1953 C.1964 D.1968
9. 数据结构只是研究数据的逻辑结构和物理结构,这种观点( )。
A.正确 B.错误
C.前半句对,后半句错 D.前半句错,后半句对 10. 计算机内部数据处理的基本单位是( )。
A.数据 B.数据元素 C.数据项 D.数据库
二、填空题
1. 数据结构按逻辑结构可分为两大类,分别是______________和_________________。
2. 数据的逻辑结构有四种基本形态,分别是________________、__________________、__________________和__________________。
3. 线性结构反映结点间的逻辑关系是__________________的,非线性结构反映结点间的逻辑关系是__________________的。
4. 一个算法的效率可分为__________________效率和__________________效率。
5. 在树型结构中,树根结点没有__________________结点,其余每个结点的有且只有__________________个前趋驱结点;叶子结点没有__________________结点;其余每个结点的后续结点可以__________________。
6. 在图型结构中,每个结点的前趋结点数和后续结点数可以__________________。
7. 线性结构中元素之间存在__________________关系;树型结构中元素之间存在__________________关系;图型结构中元素之间存在__________________关系。
8. 下面程序段的时间复杂度是__________________。
for(i=0;i
for(j=0;j
A[i][j]=0;
9. 下面程序段的时间复杂度是__________________。
i=s=0;
while(s
{ i++;
s+=i;
}
10. 下面程序段的时间复杂度是__________________。
s=0;
for(i=0;i
for(j=0;j
s+=B[i][j];
sum=s;
11. 下面程序段的时间复杂度是__________________。
i=1;
while(i<=n)
i=i*3;
12. 衡量算法正确性的标准通常是____________________________________。
13. 算法时间复杂度的分析通常有两种方法,即___________和___________的方法,通常我们对算法求时间复杂度时,采用后一种方法。 习题1参考答案
一、单项选择题
1. A 2. C 3. D 4. B 5. C、A 6. C、B 7. B 8. D 9. B 10. B
二、填空题
1. 线性结构,非线性结构
2. 集合,线性,树,图
3. 一对一,一对多或多对多
4. 时间,空间
5. 前趋,一,后继,多
6. 有多个
7. 一对一,一对多,多对多
8. O(2n)
9. O(n)
10. O(2n)
11. O(log3n)
12. 程序对于精心设计的典型合法数据输入能得出符合要求的结果。
13. 事后统计,事前估计
习题2
一、单项选择题
1. 线性表是________。
A.一个有限序列,可以为空 B.一个有限序列,不可以为空
C.一个无限序列,可以为空 D.一个无限序列,不可以为空
2. 在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动 个元素。
A.n-i B.n-i+l C.n-i-1 D.i
3. 线性表采用链式存储时,其地址________。
A.必须是连续的 B.一定是不连续的
C.部分地址必须是连续的 D.连续与否均可以
4. 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较________个元素结点。
A.n/2 B.n C.(n+1)/2 D.(n-1)/2
5. 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是____。
A. p->next=s; s->prior=p;
p->next->prior=s; s->next=p->next;
B. s->prior=p; s->next=p->next;
p->next=s; p->next->prior=s;
C. p->next=s; p->next->prior=s;
s->prior=p; s->next=p->next;
D. s->prior=p; s->next=p->next;
p->next->prior=s; p->next=s;
6. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为________。
A.p->next=p->next->next; B.p=p->next;
C.p=p->next->next; D.p->next=p;
7. 在一个长度为n的顺序表中向第i个元素(0< i
A.n-i B.n-i+l C.n-i-1 D.i
8. 在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行
A.s->next=p->next; p->next=s
B.q->next=s; s->next=p
C.p->next=s->next; s->next=p
D.p->next=s; s->next=q
9. 以下关于线性表的说法不正确的是______。
A.线性表中的数据元素可以是数字、字符、记录等不同类型。
B.线性表中包含的数据元素个数不是任意的。
C.线性表中的每个结点都有且只有一个直接前趋和直接后继。
D.存在这样的线性表:表中各结点都没有直接前趋和直接后继。
10. 线性表的顺序存储结构是一种_______的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.散列存取
11. 在顺序表中,只要知道_______,就可在相同时间内求出任一结点的存储地址。
A.基地址 B.结点大小
C.向量大小 D.基地址和结点大小
12. 在等概率情况下,顺序表的插入操作要移动______结点。
A.全部 B.一半
C.三分之一 D.四分之一
13. 在______运算中,使用顺序表比链表好。 A.插入 B.删除
C.根据序号查找 D.根据元素值查找
14. 在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是_______。
A.O(1) B.O(n)
C.O(n2) D.O(log2n)
15. 设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列__________。
A.A, B, C, D, E B.B, C, D, E, A
C.E, A, B, C, D D.E, D, C, B, A
16. 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为______。
A.top不变 B.top=0 C.top-- D.top++
17. 向一个栈顶指针为hs的链栈中插入一个s结点时,应执行______。
A.hs->next=s;
B.s->next=hs; hs=s;
C.s->next=hs->next;hs->next=s;
D.s->next=hs; hs=hs->next;
18. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为________。
A.rear%n= = front B.(front+l)%n= = rear
C.rear%n -1= = front D.(rear+l)%n= = front
19. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为________。
A.rear%n= = front B.front+l= rear
C.rear= = front D.(rear+l)%n= front
20. 在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为________。
A.front=front->next B.rear=rear->next
C.rear=front->next D.front=rear->next
数据结构课后习题及答案
填空题( 10 * 1’ = 10' )
一、概念题
2。2.当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜。
2。3。当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构。
2。6。带头结点的单链表L中只有一个元素结点的条件是L—〉Next->Next==Null。
3。6。循环队列的引入,目的是为了克服假溢出.
4。2。长度为0的字符串称为空串。
4。5.组成串的数据元素只能是字符。
4。8.设T和P是两个给定的串,在T中寻找等于P的子串的过程称为模式匹配 ,又称P为模式。
7.2。为了实现图的广度优先搜索,除一个标志数组标志已访问的图的结点外,还需要队列存放被访问的结点实现遍历。
5.7。广义表的深度是广义表中括号的重数
7。8.有向图G可拓扑排序的判别条件是有无回路。
7.9。若要求一个稠密图的最小生成树,最好用Prim算法求解。
8。8. 直接定址法法构造的哈希函数肯定不会发生冲突。
9。2。排序算法所花费的时间,通常用在数据的比较和交换两大操作。
1。1。通常从正确性﹑可读性﹑健壮性﹑时空效率等几个方面评价算法的(包括程序)的质量。
1。2.对于给定的n元素,可以构造出的逻辑结构有集合关系﹑线性关系 树形关系﹑图状关系四种。
1。3。存储结构主要有顺序存储﹑链式存储﹑索引存储﹑散列存储四种 。
1。4。抽象数据类型的定义仅取决于它的一组逻辑特性,而与存储结构无关,即不论其内部结构如何变化,只要它的
数学特性不变,都不影响其外部使用。
1。5.一个算法具有五大特性:有穷性﹑确定性﹑可行性,有零个或多个输入﹑有一个或多个输入。
2.8.在双向链表结构中,若要求在p指针所指的结点之前插入指针为s所指的结点,则需执行下列语句:
s—〉prior= p—〉prior; s-〉next= p; p-〉prior- next= s; p-〉prior= s;。
数据结构课后习题答案及解析第六章
..WORD完美格式..
..专业知识编辑整理..
第六章树和二叉树(下载后用阅读版式视图或web版式可以看清)
习 题
一、选择题
1.有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。表示该遗传关系最适合的数据结构为( )。
A.向量 B.树 C图 D.二叉树
2.树最合适用来表示( )。
A.有序数据元素 B元素之间具有分支层次关系的数据
C无序数据元素 D.元素之间无联系的数据
3.树B的层号表示为la,2b,3d,3e,2c,对应于下面选择的( )。
A. la (2b (3d,3e),2c) B. a(b(D,e),c)
C. a(b(d,e),c) D. a(b,d(e),c)
4.高度为h的完全二叉树至少有( )个结点,至多有( )个结点。
A. 2h_l B.h C.2h-1 D. 2h
5.在一棵完全二叉树中,若编号为f的结点存在右孩子,则右子结点的编号为( )。
A. 2i B. 2i-l C. 2i+l D. 2i+2
6.一棵二叉树的广义表表示为a(b(c),d(e(,g(h)),f)),则该二叉树的高度为 ( )。
A.3 B.4 C.5 D.6
7.深度为5的二叉树至多有( )个结点。
A. 31 B. 32 C. 16 D. 10
(完整版)数据结构复习题(附答案)
一、算法设计题(每题15分,共60分)
答题要求:
①用自然语言说明所采用算法的思想;
②给出每个算法所需的数据结构定义,并做必要说明;
③写出对应的算法程序,并做必要的注释。
1、有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针域next。假设单链表已建立,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留一个。
3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。现要求采用循环链表结构设计一个算法,模拟此过程。
4、编程实现单链表的就地逆置。
23.在数组 A[1..n]中有n个数据,试建立一个带有头结点的循环链表,头指针为h,要求链中数据从小到大排列,重复的数据在链中只保存一个.
5、设计一个尽可能的高效算法输出单链表的倒数第K个元素。
3、假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。(15分)
(1)下面所示的序列中哪些是合法的?
A. IOIIOIOO B. IOOIOIIO C. IIIOIOIO D. IIIOOIOO
(2)通过对(1)的分析,写出一个算法,判定所给的操作序列是否合法。若合法,返回true,否则返回false(假定被判定的操作序列已存入一维数组中)。
5、设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。
数据结构综合习题集(含答案)
.
.. 数据结构习题集
一、选择题
1.数据结构中所定义的数据元素,是用于表示数据的 。 ( C )
A.最小单位 B.最大单位 C.基本单位 D.不可分割的单位
2.从逻辑上可以把数据结构分为 ( C )
A.动态结构、静态结构 B.顺序结构、链式结构
C.线性结构、非线性结构 D.初等结构、构造型结构
3.当待排序序列中记录数较少或基本有序时,最适合的排序方法为(A )
A.直接插入排序法 B.快速排序法 C.堆排序法 D.归并排序法
4.关于串的的叙述,不正确的是( B)
A.串是字符的有限序列 B.空串是由空格构成的串
C.替换是串的一种重要运算
D.串既可以采用顺序存储,也可以采用链式存储
5.带表头结点链队列的队头和队尾指针分别为front和rear,则判断队空的条件为(A )
A.front==rear B.front!=NULL C.rear!=NULL D.front==NULL
6.若构造一棵具有n个结点的二叉排序树,最坏的情况下其深度不会超过(B )
A.n/2 B.n C.(n+1)/2 D.n+1
7.将两个各有n个元素的有序表合并成一个有序表,其最少的比较次数为(A)
A.n B.2n-1 C.2n D.n2
8.设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为(B )
A.236 B.239 C.242 D.245
9.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能是(A )
A.dceab B.decba C.edcba D.abcde
10.元素大小为1个单元,容量为n个单元的非空顺序栈中,以地址高端为栈底,以top作为栈顶指针,则出栈处理后,top的值应修改为(D )
数据结构C语言版习题参考答案
附录 习题参考答案
习题1参考答案
1.1.选择题
(1). A. (2). A. (3). A. (4). B.,C. (5). A. (6). A. (7). C. (8). A. (9). B. (10.)
A.
1.2.填空题
(1). 数据 关系
(2). 逻辑结构 物理结构
(3). 线性数据结构 树型结构 图结构
(4). 顺序存储 链式存储 索引存储 散列表(Hash)存储
(5). 变量的取值范围 操作的类别
(6). 数据元素间的逻辑关系 数据元素存储方式或者数据元素的物理关系
(7). 关系 网状结构 树结构
(8). 空间复杂度和时间复杂度
(9). 空间 时间
(10). Ο(n)
1.3 名词解释如下:
数据:数据是信息的载体,是计算机程序加工和处理的对象,包括数值数据和非数值数据。
数据项:数据项指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。
数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项组成。
数据逻辑结构:数据的逻辑结构就是指数据元素间的关系。
数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系。
数据类型:是指变量的取值范围和所能够进行的操作的总和。
算法:是对特定问题求解步骤的一种描述,是指令的有限序列。
1.4 语句的时间复杂度为:
(1) Ο(n2)
(2) Ο(n2)
(3) Ο(n2)
(4) Ο(n-1)
(5) Ο(n3)
1.5 参考程序:
main()
{
int X,Y,Z;
scanf(“%d, %d, %d”,&X,&Y,Z);
if (X>=Y)
if(X>=Z)
if (Y>=Z)
{ printf(“%d, %d, %d”,X,Y,Z);}
else
{ printf(“%d, %d, %d”,X,Z,Y);} else
数据结构课后习题及解析第六章
数据结构课后习题及解析第六章
第六章习题
1.试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。
2.对题1所得各种形态的二叉树,分别写出前序、中序和后序遍历的序列。
3.已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,……,nk个度为k的结点,则该树中有多少个叶子结点并证明之。
4.假设一棵二叉树的先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请画出该二叉树。
5.已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个?
6.给出满足下列条件的所有二叉树:
① 前序和后序相同
② 中序和后序相同
③ 前序和后序相同
7. n个结点的K叉树,若用具有k个child域的等长链结点存储树的一个结点,则空的Child域有多少个?
8.画出与下列已知序列对应的树T:
树的先根次序访问序列为GFKDAIEBCHJ;
树的后根次序访问序列为DIAEKFCJHBG。
9.假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为:
0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10
请为这8个字母设计哈夫曼编码。
10.已知二叉树采用二叉链表存放,要求返回二叉树T的后序序列中的第一个结点指针,是否可不用递归且不用栈来完成?请简述原因.
11. 画出和下列树对应的二叉树:
12.已知二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。
13.编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。
14.分别写函数完成:在先序线索二叉树T中,查找给定结点*p在先序序列中的后继。在后序线索二叉树T中,查找给定结点*p在后序序列中的前驱。
15.分别写出算法,实现在中序线索二叉树中查找给定结点*p在中序序列中的前驱与后继。
16.编写算法,对一棵以孩子-兄弟链表表示的树统计其叶子的个数。
数据结构复习参考题与参考答案
第一章概论 自测题答案
一、填空题
1. 数据结构是一门研究非数值计算的程序设计问题中计算机的 操作对象 以及它们之间的 关系 和运算等的学科。
2. 数据结构被形式地定义为(D, R),其中D是 数据元素 的有限集合,R是D上的
关系 有限集合。
3. 数据结构包括数据的 逻辑结构 、数据的 存储结构 和数据的 运算 这三个方面的内容。
4. 数据结构按逻辑结构可分为两大类,它们分别是 线性结构 和 非线性结构 。
5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
6.在线性结构中,第一个结点 没有 前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点 没有 后续结点,其余每个结点有且只有1个后续结点。
7. 在树形结构中,树根结点没有 前驱 结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有 后续 结点,其余每个结点的后续结点数可以任意多个 。
8. 在图形结构中,每个结点的前驱结点数和后续结点数可以 任意多个 。
9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序 、链式 、索引
和 散列 。
10. 数据的运算最常用的有5种,它们分别是插入 、 删除、修改、 查找 、排序。
11. 一个算法的效率可分为 时间 效率和 空间 效率。
二、单项选择题
( B )1. 非线性结构是数据元素之间存在一种:
A)一对多关系 B)多对多关系
C)多对一关系 D)一对一关系
( C )2. 数据结构中,与所使用的计算机无关的是数据的 结构;
A) 存储 B) 物理
C) 逻辑 D) 物理和存储
数据结构练习题(含答案)
数据结构练习题(含答案)
①A.操作对象 B.计算方法 C.逻辑结构 D.数据映象②A.存储结构B.关系C.运算D.算法2.数据结构DS(DataStruct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。
①A.算法B.数据元素C.数据操作D.数据对象②A.操作B.映象C.存储D.关系3.在数据结构中,从逻辑上可以把数据结构分成。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4.算法分析的目的是①,算法分析的两个主要方面是②。
①A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性②A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性5.计算机算法指的是①,它必具备输入、输出和②等五个特性。
①A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法②A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性1.2填空题(将正确的答案填在相应的空中)
1.数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。
2.在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;
最后一个结点后续结点,其余每个结点有且只有个后续结点。
3.在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。
4.在图形结构中,每个结点的前驱结点数和后续结点数可以。
5.线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。
6.算法的五个重要特性是____,____,____,____,____。 7.分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是____。
for(i=0;i
《数据结构(C语言描述)》-马秋菊-源代码和习题参考答案
习题配套
第一章
2.C、A、B、B、A、A、D
3.
D={A,B,C,E,F,G,H,I,J};
R={,,,,,,,,,}
4.顺序、链式、索引、哈希。
*5.解:100n2>2nn至少要多大
6.O(n)、O(n)、O(n)、O(n)、
(5)当n>m,O(n),当m>n,O(m)
7.n!
2100>lgn>n1/2>n3/2>(3/2)n>2n>nlgn>nn
第二章
1.×、√、×、√、√
2.AAD
4.顺序表
void Delete_SeqListx(SeqList *L,ElemType x)
/*删除表中值为x元素*/
{inti,j;
for(i=1;i<=L->length;i++){
if(L->elem[i]==x){
for(j=i;j<=L->length-1;j++)
L->elem[j]=L->elem[j+1];
L->length--;
}/*向上移动*/
}
O(n2) A
B C E
F G H I
题1-3图 J 链表
void del_link(LinkList H,int x)/*删除数据域为x的结点*/
{
LNode *p,*q;
p=H;q=H->next;
while(q!=NULL)
{
if(q->data==x){
p->next=q->next;free(q);q=p->next;
}
else{p=q;q=q->next;}
}
}
O(n)
5.
int Delete_SeqListx(SeqList *L,int i,int k)
/*删除表中删除自第i个结点开始的k个结点*/
{intj;
if(i<1||k<0||i+k-1>L->length)
/*检查空表及删除位置的合法性*/
{printf("不存在第i个元素");
return ERROR;}
for(j=i;j<=L->length-k;j++)
L->elem[j]=L->elem[j+k]; /*向上移动*/
数据结构课后参考答案
第 3 章 特殊线性表——栈、队列和串
2005-07-14
第 3 章 特殊线性表——栈、队列和串
课后习题讲解
1. 填空
⑴ 设有一个空栈,栈顶指针为1000H,现有输入序列为1、2、3、4、5, 经过push,push,pop,push,pop,push,push后,输出序列是( ),栈顶指针为( )。
【解答】23,1003H
⑵ 栈通常采用的两种存储结构是( );其判定栈空的条件分别是( ),判定栈满的条件分别是( )。
【解答】顺序存储结构和链接存储结构(或顺序栈和链栈),栈顶指针top= -1和top=NULL,栈顶指针top等于数组的长度和内存无可用空间
⑶( )可作为实现递归函数调用的一种数据结构。
【解答】栈
【分析】递归函数的调用和返回正好符合后进先出性。
⑷ 表达式a*(b+c)-d的后缀表达式是( )。
【解答】abc+*d-
【分析】将中缀表达式变为后缀表达式有一个技巧:将操作数依次写下来,再将算符插在它的两个操作数的后面。
⑸ 栈和队列是两种特殊的线性表,栈的操作特性是( ),队列的操作特性是( ),栈和队列的主要区别在于( )。
【解答】后进先出,先进先出,对插入和删除操作限定的位置不同
⑹ 循环队列的引入是为了克服( )。
【解答】假溢出
⑺ 数组Q[n]用来表示一个循环队列,front为队头元素的前一个位置,rear为队尾元素的位置,计算队列中元素个数的公式为( )。
【解答】(rear-front+n)% n
【分析】也可以是(rear-front)% n,但rear-front的结果可能是负整数,而对一个负整数求模,其结果在不同的编译器环境下可能会有所不同。
⑻ 用循环链表表示的队列长度为n,若只设头指针,则出队和入队的时间复杂度分别是( )和( )。
【解答】O(1),O(n) 【分析】在带头指针的循环链表中,出队即是删除开始结点,这只需修改相应指针;入队即是在终端结点的后面插入一个结点,这需要从头指针开始查找终端结点的地址。
