刷题9

1:若已知一个栈的入栈序列是 1,2,3,„,n,其输出序列为 p1,p2,p3,„,pn,若 p1=n,则pi 为(C)
A:i
B:n=i
C:n-i+1
D:不确定
解析:栈的特性是后进先出,入栈序列是1,2,3…n,输出对应的应该是n,n-1,n-2…1,所以答案是n-i+1
2:在图G的最小生成树G1中,可能会有某条边的权值超过未选边的权值(A)
A:正确
B:错误
解析:如果较小的值加进去会构成回路,则放弃权值小的,选择权值较大的不会构成回路的。
3:在有序表(5,8,36,48,50,58,88)中二分查找字58时所需进行的关键字比较次数是(),对应的判定树高度为(B)
A:2,2
B:2,3
C:3,2
D:3,3
解析:第一次查询:比较48和58大小,58大则在50,58,88中查找比较58和58大小,相等,找到58,所以共两次查找,根据数据画出二叉树,得出树高度为3
4:线索二叉树是一种(A)结构
A:逻辑
B:逻辑和存储
C:物理
D:线性
解析: 逻辑结构:集合、线性、树形、图形
物理结构:顺序、链式
5:下面程序段的输出结果是(D)
char *p1 = ”123”, *p2 = ”ABC”, str[50] = “xyz”;
strcpy(str + 2, strcat(p1, p2));
printf(“%s\n”, str);
A:xyz123ABC
B:z123ABC
C:xy123ABC
D:出错
解析:p1和p2都指向常量字符串,在常量区,所以不能对其进行操作;改为数组即可,但是用字符串初始化数组时要记得将数组长度加1,因为字符串默认的末尾有一个‘\0’;第二点要注意的是,strcat函数的p1要有足够的空间来容纳p1和p2连接后的串长。
6:已知三叉树T 中 6 个叶结点的权分别是 2,3,4,5,6,7, T 的带权(外部)路径长度最小是(B)
A:27
B:46
C:54
D:56
解析:三叉树可以有两个或者三个结点 尽量将权值小的放到下面,将2 3放在第三层,4 5放在第二层,6 7 放第一层即(2+3)*3+(4+5)*2+(6+7)*1=46
7:由权值为9,2,7,5的四个叶子节点构造一棵哈夫曼树,该树的带权路径长度为:(C)
A:23
B:37
C:44
D:27
解析:(2+5)*3+7*2+9*1=44
8:对于链表的优缺点,以下说法错误的是(B)
A:预先未知表中元素的多少时宜采用链表
B:可以方便的随机存取表中的任何一节点
C:插入和删除操作较方便
D:无需采用连续的存储空间进行数据存储
解析:不能随机存取任一节点,存取到第n个位置时,先找到n-1的位置,然后将指针指向改变
9:设栈最大长度为 3 ,入栈序列为 1 , 2 , 3 , 4 , 5 , 6 ,则不可能得出栈序列是(D)
A:1 , 2 , 3 , 4 , 5 , 6
B:2 , 1 , 3 , 4 , 5 , 6
C:3 , 4 , 2 , 1 , 5 , 6
D:4 , 3 , 2 , 1 , 5 , 6
解析:栈的最大长度为3,,所以当4进入则溢出,则D选项序列不可能得出
10:若对如下的二叉树进行中序线索化,则结点x的左、右线索指向的结点分别是 (D)
图一
A:e,c
B:e,a
C:d,c
D:b,a
**解析:**中序遍历二叉树序列为DEBXAC,则x的左右索引指向的结点为B、A,即D选项

猜你喜欢

转载自blog.csdn.net/g_l_xz/article/details/83188398
今日推荐