数据结构-二叉树与线性表部分试题
1. 二叉树的前序、中序和后序遍历法最适合采用_A_来实现。
A:递归程序 B:迭代程序 C:队列操作 D:栈操作
2. 在下列二叉树中,满二叉树为__C__树,完全二叉树为__AC__树。
A B C
3. 下图的深度优先遍历为_C_,广度优先遍历为_A_。
A:DBGCAEHF B:DBCAGEHF C: DBCAGEFH D:DGHEFAC
4. 树是结点的集合,它有_A_个根结点。二叉树有_B_个根结点,按一定的规则,任一树都可以转换成唯一对应的二叉树。二叉树的查找有深度优先和广度优先二类,深度优先包括_C_。当一棵二叉树的前序序列和中序序列分别是HGEDBFCA和EGBDHFAC时,其后序序列必是_D_,层次序列为_E_.
A: (1)且只有1 (2)1或多于1 (3)0或1 (4)至少2
B: (1)且只有1 (2)1或多于1 (3)0或1 (4)至少2
C: (1)前序遍历 后序遍历 中序遍历 (2)前序遍历 后序遍历 层次遍历 (3)前序遍历 中序遍历 层次遍历 (4)中序遍历 后序遍历 层次遍历
D: (1)BDEAGFHC (2)EBDGACFH (3)HGFEDCBA (4)HFGDEABC
E: (1)BDEACGFH (2)EBDGACFH (3)HGFEDCBA (4)HFGCDEAB
答案(1,3,1,2,3)
5. 对下图中二叉树进行前序遍历结果为_A_,中序遍历结果为_C_,后序遍历结果为_D_,逐层遍历结果为_B_。
A:EBPMSRT B:EBPMSRT C: BEMPRST D:BMRTSPE E:BPMSRTE
6. 假设在单链表的两个元素a和b之间插入一个数据元素x,已知p为指向结点a的指针,s为指向x的指针,则插入的语句为:_B_
A: p->next = s->next; p->next = s;
B: s->next = p->next; p->next = s;
C: p->next = s->next; s = p->next;
D: s->next = p->next; s = p->next;
7. 假设在双向链表的两个元素a和b之间插入一个数据元素x,已知p为指向结点a的指针,s为指向x的指针,则插入的语句为:_A_
A: s->next = p->next; p->next->prev = s; s->prev = p; p->next = s;
B: s->prev = p; p->next = s; s->next = p->next; p->next->prev = s;
C: p->next = s; p->next->prev = p; s->prev = p; s->prev->next = s;
8. 假设在双向链表的三个连续元素a、x和b中删除一个元素x,已知p为指向结点a的指针,s为指向x的指针,则删除的语句为:_ s->prev->next = s->next; s->next->prev = s->prev;_
9. 栈的操作原则是_B_,队列的操作原则是_C_。
A:LILO B:LIFO C:FIFO D FILO
10. 二维数组 X 的行下标范围是0~5,列下标范围是1~8,每个数组元素占六个字节,则该数组的体积为__(6)__个字节,若已知 X 的最后一个元素的起始字节地址为382,则 X 的首地址(即第一个元素的起始字节地址)为 __(7)__,记为 Xd。若按行存储,则 X{1,5] 的起始地址是 __(8)__, 结束字节地址是 __(9)__。若按列存储,则 X[4,8]的起始字节地址为__(10)__。
(6): A.210 B.240 C.288 D.294
(7): A.0 B.6 C.94 D.100
(8): A.Xd+24 B.Xd+72 C.Xd+78 D.Xd+144
(9): A.Xd+29 B.Xd+77 C.Xd+83 D.Xd+147
(10):A.Xd+186 B.Xd+234 C.Xd+270 D.Xd+276
答案((6)C (7)D (8)B (9)B (10)D)
11. 从供选的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。
设W为一个二维数组,其每个数据元素 占用6个字节,行下标i从0到8 ,列下标j从2到5
,则二维数组W的数据元素共占用_A_个字节。W中第6 行的元素和第4
列的元素共占用_B_个字节。若按行顺序存放二维数组W,其起始地址的字节号为100,则二维数组W的
最后一个数据元素的起始地址的字节号为_C_,数据元素 的起始地址号为_D_,而数据元素
的起始地址与当W按列顺序存放时数据元素_E_的起始地址相同。
供选择的答案
A: ① 480 ② 192 ③ 216 ④ 144
B: ① 78 ② 72 ③ 66 ④ 84
C: ① 310 ② 311 ③ 315 ④ 314
D: ① 179 ② 178 ③ 184 ④ 185
E: ① ② ③ ④
答案(3,2,1,2,4)
12.下述哪一条是顺序存储结构的优点?( A )
A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示
13. 下面的叙述不正确的是(B,C )
A.线性表在链式存储时,查找第i个元素的时间同i的值成正比
B. 线性表在链式存储时,查找第i个元素的时间同i的值无关
C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比
D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关
14. 17.二叉树的第I层上最多含有结点数为( C )
A.2I B. 2I-1-1 C. 2I-1 D.2I -1
15. 利用二叉链表存储树,则根结点的右指针是( C)。
A.指向最左孩子 B.指向最右孩子 C.空 D.非空
E |
F |
D |
G |
A |
B |
/ |
+ |
+ |
* |
- |
C |
* |
它所表示的算术表达式是( C )
A. A*B+C/(D*E)+(F-G) B. (A*B+C)/(D*E)+(F-G)
C. (A*B+C)/(D*E+(F-G)) D. A*B+C/D*E+F-G
17.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用( A )存储方式最节省运算时间。
A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表
18.(1) 静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。
(2) 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
(3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
以上错误的是( B )
A.(1),(2) B.(1) C.(1),(2),(3) D.(2)
19.从下列有关树的叙述中,选出正确的叙述( CDFHI )
A.二叉树中每个结点有两个子结点,而树无此限制,因此二叉树是树的特殊情况。
B.当K≥1时高度为K的二叉树至多有2k-1个结点。
C.用树的前序周游和中序周游可以导出树的后序周游。
D.线索二叉树的优点是便于在中序下查找前驱结点和后继结点。V
E.将一棵树转换成二叉树后,根结点没有左子树。
F.一棵含有N个结点的完全二叉树,它的高度是ëLOG2Nû+1。
G.在二叉树中插入结点,该二叉树便不再是二叉树。
H.采用二叉树链表作树的存储结构,树的前序周游和其相应的二叉树的前序周游的结果是一样的。
I.哈夫曼树是带权路径最短的树,路径上权值较大的结点离根较近。
J.用一维数组存储二叉树时,总是以前序周游存储结点。
20.已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( D )
A.-A+B*C/DE B. -A+B*CD/E C.-+*ABC/DE D. -+A*BC/DE
判断:
21. 线性表就是顺序存储的表。( X )
22. 顺序存储结构的主要缺点是不利于插入或删除操作。( V )
23.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( V )
24. 线性表只能用顺序存储结构实现。( X )
25.顺序存储方式只能用于存储线性结构。( X )
26. 在任意一棵非空二叉排序树,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉排序树相同。(X)
27. 非空的二叉树一定满足:某结点若有左孩子,则其中序前驱一定没有右孩子(V)
28.中序遍历一棵二叉排序树的结点就可得到排好序的结点序列。(V)
29.包含n(n>0)个元素的二叉树边树为n-1。(V)
30.若二叉树的高度为h,h>=0,则该二叉树最少有h个元素,最多有2^h个元素。(X,2^h - 1)