复习.docx
《复习.docx》由会员分享,可在线阅读,更多相关《复习.docx(14页珍藏版)》请在冰豆网上搜索。
![复习.docx](https://file1.bdocx.com/fileroot1/2022-12/8/c2d91d79-69a8-40c9-b695-b51548bbf1ea/c2d91d79-69a8-40c9-b695-b51548bbf1ea1.gif)
复习
一、单项选择题
1.在数据结构中,从逻辑上可以把数据结构分为()两类。
A.动态结构和静态结构
B.紧凑结构和非紧凑结
C.线性结构和非线性结构
D.内部结构和外部结构
C
2.数据的逻辑结构是()关系的整体。
A.数据元素之间的逻辑
B.数据项之间的逻辑
C.数据类型之间
D.存储结构之间
A
3.在计算机的存储器中表示数据时,物理地址和逻辑地址的相对位置相同并且是连续的,称之为()。
A.逻辑结构
B.顺序存储结构
C.链式存储结构
D.以上都对
B
4.数据运算的执行()。
A.效率与采用何种存储结构有关
B.是根据存储结构来定义的
C.有算术运算和关系运算两大类
D.必须用程序设计语言来描述
A
5.数据结构在计算机内存中的表示是指()。
A.数据的存储结构
B.数据结构
C.数据的逻辑结构
D.数据元素之间的关系
A
6.数据采用链式存储结构存储,要求()。
A.每个节点占用一片连续的存储区域
B.所有节点占用一片连续的存储区域
C.节点的最后一个数据域是指针类型
D.每个节点有多少个后继,就设多少个指针域
A
7.以下()不是算法的基本特性。
A.可行性
B.长度有限
C.在确定的时间内完成
D.确定性
B
8.在计算机中算法指的是解决某一问题的有限运算序列,它必须具备输入、输出、()。
A.可行性、可移植性和可扩展性
B.可行性、有穷性和确定性
C.确定性、有穷性和稳定性
D.易读性、稳定性和确定性
9.算法的时间复杂度与()有关。
A.问题规模
B.计算机硬件性能
C.编译程序质量
D.程序设计语言
A
10.算法分析的主要任务之一是分析()。
A.算法是否具有较好的可读性
B.算法中是否存在语法错误
C.算法的功能是否符合设计要求
D.算法的执行时间和问题规模之间的关系
D
11.算法分析的目的是()。
A.找出数据结构的合理性
B.研究算法中输入和输出关系
C.分析算法的效率以求改进
D.分析算法的易读性和文档性
C
12.在一个长度为n的顺序表中于第i个元素(1<=i<=n+1)之前插入一个新元素,需要向后移动()个元素。
A.n-i
B.n-i+1
C.n-i-1
D.i
B
13.链表不具有的特点是()。
A.可随机访问任一元素
B.插入删除不需要移动元素
C.不必事先估计存储空间
D.所需空间与线性表长度成正比
A
14.线性表采用链式存储结构时,各节点之间的地址()。
A.必须是连续的
B.一定是不连续的
C.部分地址必须是连续的
D.连续是否均可以
D
15.在线性表的下列存储结构中,读取指定序号的元素花费时间最少的是()。
A.单链表
B.双链表
C.循环链表
D.顺序表
D
16.若线性表最常用的运算是存取第i个元素及其前驱的值,则采用()存储方式最省时间。
A.单链表
B.双链表
C.循环单链表
D.顺序表
D
17.在单链表中,若*p节点不是尾节点,在其后插入*s节点的操作是()。
A.s->next=p;p->next=s;
B.s->next=p->next;p->next=s;
C.s->next=p->next;p=s;
D.p->next=s;s->next=p;
B
18.在一个单链表中,删除*p节点(非尾节点)之后的一个节点的操作是()。
A.p->next=p
B.p->next->next=p->next
C.p->next->next=p
D.p->next=p->next->next
D
19.栈和队列的共同点是()。
A.都是先进后出
B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
C
20.元素A、B、C、D依次进顺序栈后,栈顶元素是(),栈底元素是()。
A.A
B.B
C.C
D.D
D和A
21.经过以下栈运算后,x的值是()。
InitStack(s);Push(s,a);Push(s,b);Pop(s,x);GetTop(s,x)
A.a
B.b
C.1
D.0
A
22.经过以下栈运算后,StackEmpty(s)的值是()。
InitStack(s);Push(s,a);Push(s,b);Pop(s,x);Pop(s,y)
A.a
B.b
C.1
D.0
C
23.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是()。
A.A,B,C,D
B.D,C,B,A
C.A,C,D,B
D.D,A,B,C
D
24.表达式a*(b+c)-d的后缀表达式()。
A.abcd*+-
B.abc+*d-
C.abc*+d-
D.-+*abcd
B
25.经过以下队列运算后,对头的值是()。
InitQueue(qu);enQueue(qu,a);enQueue(qu,b);enQueue(qu,c);deQueue(qu);
A.a
B.b
C.1
D.0
B
26.经过以下队列运算后,QueueEmpty(q)的值是()。
InitQueue(qu);enQueue(qu,a);enQueue(qu,b);deQueue(qu,x);deQueue(qu,y);
A.a
B.b
C.1
D.0
C
27.元素A、B、C、D依次进入队列qu后,队头元素是(),队尾元素是()。
A.A
B.B
C.C
D.D
A和D
28.设环形队列中输组的下标是0~N-1,其头、尾指针分别为f(指向队头元素的前一个位置)和r(指向队尾元素),则其元素个数为()。
A.r-f
B.r-f-1
C.(r-f)%N+1
D.(r-f+N)%N
D
29.若用一个大小为6的数组来实现环形队列,rear作为队尾指针指向队列中尾部元素,front作为队头指针指向队头元素的前一个位置。
当前rear和front的值分别是0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是()。
A.1和5
B.2和4
C.4和2
D.5和1
B
30.有一个环形队列Q(存放元素位置0~QueueSize-1),rear作为队尾指针指向队列中尾部元素,front作为对头指针指向队头元素的前一个位置。
则队满的条件是()。
A.Q.front==Q.rear
B.Q.front+1==Q.rear
C.Q.front==(Q.rear+1)%QueueSize
D.Q.rear==(Q.front+1)%QueueSize
C
31.串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储
B.数据元素是一个字符
C.可以链接存储
D.数据元素可以是多个字符
B
32.串的长度是()。
A.串中不同字母的个数
B.串中不同字符的个数
C.串中所含字符的个数,且大于0
D.串中所含字符的个数
D
33.数组A[0..5,0..6]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内存单元中,则元素a[5][5]的地址为()。
A.1175
B.1180
C.1205
D.1210
A
34.对矩阵压缩存储是为了()。
A.方便运算
B.节省存储空间
C.方便存储
D.提高运算速度
B
35.一个n阶对称矩阵,如果采用压缩存储方式,则容量为()。
A.n2
B.n2/2
C.n(n+1)/2
D.(n+1)2/2
C
36.下列4个广义表中长度为1,深度为4的广义表是()。
A. ((),((a)))
B.((((a),b)),c)
C.(((a,b),(c)))
D.(((a,(b),c)))
D
37.已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子t的运算是()。
A.head[tail[tail[L]]]
B.tail[head[head[tail[L]]]]
C.head[tail[head[tail[L]]]]
D.head[head[tail[tail[L]]]]
C
38.已知广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为()。
head[tail[head[tail[tail(A)]]]]
A.(g)
B.(d)
C.(c)
D.d
D
39.在下列存储形式中,()不是树的存储形式。
A.双亲表示法
B.孩子链表示法
C.孩子兄弟链表示法
D.顺序存储表示法
D
40.用双亲存储结构表示树,其优点之一是()比较方便。
A.找指定节点的双亲节点
B.找指定节点的孩子节点
C.找指定节点的兄弟节点
D.判断某节点是不是叶子节点
A
41.用孩子链存储结构表示树,其优点之一是()比较方便。
A.判断两个指定节点是不是兄弟
B.找指定节点的双亲
C.判断制定节点在第几层
D.计算制定节点的度数
D
42.如果T1是由有序树T转换而来的二叉树,那么T中节点的后序遍历序列就是T1中节点的()序列。
A.先序
B.中序
C.后序
D.层次序
B
43.二叉树若用顺序方法存储,则下列4种运算中的()最容易实现。
A.先序遍历二叉树
B.判断两个指定节点是不是在同一层上
C.层次遍历二叉树
D.根据节点的值查找其存储位置
C
44.一棵完全二叉树上有1001个节点,其中叶子节点的个数是()。
A.250
B.501
C.254
D.505
B
45.一棵有124个叶子节点的完全二叉树,最多有()个节点。
A.247
B.248
C.249
D.250
B
46.若二叉树的中序遍历序列是abcdef,且c为根节点,则()。
A.节点c有两个孩子
B.二叉树有两个度为0的节点
C.二叉树的高度为5
D.以上都不对
A
47.在任何一棵二叉树中,如果节点a有左孩子b、右孩子c,则在节点的先序序列、中序序列、后序序列中,()。
A.节点b一定在节点a的前面
B.节点a一定在节点c的前面
C.节点b一定在节点c的前面
D.节点a一定在节点b的前面
C
48.设有13个值,用它们组成一棵哈夫曼树,则该哈夫曼树共有()个节点。
A.13
B.12
C.26
D.25
D
49.在二叉排序树中,凡是新插入的节点,都是没有()的。
A.孩子
B.关键字
C.平衡因子
D.赋值
A
50.只有在顺序存储结构上才能实现的查找方法是()法。
A.顺序查找
B.二分查找
C.树形查找
D.哈希查找
B
51.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率的情况下,查找成功时所需的平均比较次数为()。
A.35/12
B.37/12
C.39/12
D.43/12
B
52.有一个有序表R[1..13]={1,3,9,12,32,41,45,62,75,77,82,95,100},当用二分查找法查找值为82的节点时,经过()次比较后查找成功。
A.1
B.2
C.4
D.8
C
二、填空题
1.带头节点的单链表head为空的判定条件是()。
head->next==NULL
2.在一个单链表head中,已知p指向某个非终端节点,若要删除其后的一个节点,则执行的运算是()。
q=p->next;p->next=q->next;free(q);
3.在有n个元素的顺序表中删除任意一个元素所需移动元素的平均次数为()。
(n-1)/2
4.在有n个元素的顺序表中的任意位置插入一个元素所需移动元素的平均次数为()。
n/2
5.栈是一种具有()特性的线性表。
后进先出或先进后出
6.一维数组的逻辑结构是(),存储结构是();对于二维或多维数组,分为按()和()两种不同的存储方式。
线性结构,顺序结构,行优先顺序,列优先顺序
7.广义表中的每个元素可以使(),也可以是()。
原子,子表
8.在树形结构的二元组表示中,如果(),则称a和b是兄弟;如果(),则称a是b的双亲,()的孩子。
a和b有共同的前躯,a是b的前躯,b是a
9.非空二叉树共有()种基本形态。
4
10.在高度为h(h>=0)的二叉树中至多有()个节点,至少有()个节点。
2h-1,h
11.n个节点的二叉树最大高度是(),最小高度是()。
n,log2(n+1)上取整
12.n个节点的二叉树中如果有m个叶子节点,则一定有()个度为1的节点,()个度为2的节点。
n-2m+1,m-1
13.8层完全二叉树至少有()个节点,拥有100个节点的完全二叉树的最大层数为()。
128,7
14.若以{4,5,6,7,8}作为叶子节点的权值构造哈夫曼树,则其带权路径长度是(),各节点对应的哈夫曼编码为()。
69,010、011、10、11、00
15.衡量查找算法性能好坏的主要标准是()。
关键字的平均比较次数或平均查找长度
16.对二叉排序树进行()遍历,可以得到按关键字大小从小到大排列的节点序列。
中序
17.在高度为h含n个节点的二叉排序树上查找一个关键字最多比较次数为()。
h
三、解答题
P135例6.1
P165例7.5
P166例7.6
P186已知先序中序序列构造二叉树
P188已知中序后序序列构造二叉树
P196例7.15
P2027.27.3
P252例9.1
P260例9.3
P266例9.5
P268例9.6
P2859.19.29.3
四、算法设计题
1.顺序表基本运算的实现
2.单链表基本运算的实现
3.二叉树的基本运算和二叉树遍历算法