01-数据结构—判断题
71.在数据结构中,从逻辑上可以把数据结构分为( )。
A. 动态结构和静态结构
B. 紧凑结构和非紧凑结构
C. 线性结构和非线性结构
D. 内部结构和外部结构
答案:C
72.当输入规模为n时,下列算法渐进复杂性中最低的是
A. 5n
B. n^2
C. 2n^2
D. n!
答案:A
73.下面代码段的时间复杂度是()。 x = 0;for (i = 1; i < n; i++) { for (j = 1; j <= n - i; j++) { x++; }}
A.O(n)
B.O(n^2)
C.O(n^3)
D.O(2^n)
答案:B
74.某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第12个元素的存储地址为()。
A. 144
B. 145
C. 147
D. 148
答案:A
75.在单链表中,若|p|所指的结点不是最后结点,在|p|之后插入|s|所指结点,则执行
A. |s->next=p; p->next=s;|
B. |s->next=p->next; p=s;|
C. |s->next=p->next; p->next=s;|
D. |p->next=s; s->next=p;|
答案:C
76.设|h|为不带头结点的单向链表。在|h|的头上插入一个新结点|t|的语句是:
A. |h=t; t->next=h->next;|
B. |t->next=h->next; h=t;|
C. |h=t; t->next=h;|
D. |t->next=h; h=t;|
答案:D
77.线性表在 ▁▁▁▁▁ 情况下适合采用链式存储结构。
A. 线性表中数据元素的值需经常修改
B. 线性表需经常插入或删除数据元素
C. 线性表包含大量的数据元素
D. 线性表的数据元素包含大量的数据项
答案:B
78.若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能得到的出栈序列是?
A. b c a e f d
B. c b d a e f
C. d c e b f a
D. a f e d c b
答案:D
79.设一个堆栈的入栈顺序是1、2、3、4、5。若第一个出栈的元素是4,则最后一个出栈的元素必定是:
A. 1
B. 3
C. 5
D. 1或者5
答案:D
80.
A.1->2->3
B.2->3->4
C.4->1->2
D.答案不唯一
答案:B
81.在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则删除结点的运算是( )。
A. r=f->next;
B. r=r->next;
C. f=f->next;
D. f=r->next
答案:C
82.已知二叉树的前序遍历序列为 ABDCEFG,中序遍历序列为 DBCAFEG,则后序遍历序列为 __
A. BDACEFG
B. DCBFGEA
C. ABCDEFG
D. GFEDCBA
答案:B
83.完全二叉树的第4层有1个节点,该完全二叉树总计有多少个节点( ).
A. 8
B. 9
C. 17
D. 16
答案:A
84.深度为k的完全二叉树的第k层至少有( )个结点。
A.2k−1−1
B.2k−1+1
C.2k-1
D.2k+1
答案:C
85.具有65个结点的完全二叉树其深度为(根的深度为1):
A. 8
B. 7
C. 6
D. 5
答案:B
86.一个高度为h的满二叉树共有n个结点,其中有m个叶子结点,则有( )成立。
A. n=h+m
B. n=2m-1
C. m=h-1
D. h+m=2n
答案:B
87.一棵完全二叉树上有62个结点,其中叶子结点的个数是( )
A. 31
B. 32
C. 33
D. 前述答案均不正确
答案:A
88.根据使用频率为5个字符设计的哈夫曼编码不可能是( )。
A. 111,110,10,01,00
B. 000,001,010,011,1
C. 100,11,10,1,0
D. 001,000,01,11,10
答案:C
89.(neuDS)在哈夫曼树中,任何一个结点它的度都是( )。
A. 0或1
B. 1或2
C. 0或2
D. 0或1或2
答案:C
90.设给定权值总数有n 个,其哈夫曼树的结点总数为( )。
A. 不确定
B. 2n
C. 2n+1
D. 2n-1
答案:D
91.对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是:
A.56
B.57
C.58
D.60
答案:C
92.一段文本中包含对象{a,b,c,d,e},其出现次数相应为{3,2,4,2,1},则经过哈夫曼编码后,该文本所占总位数为:
A. 12
B. 27
C. 36
D. 其它都不是
答案:B
93.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储( )。
A. 数据的处理方法
B. 数据元素的类型
C. 数据元素之间的关系
D. 数据的存储方法
答案:C
94.下面程序的时间复杂度为()。For(i = 0; i < m; i++)For(j = 0; j < n; j++ )A[i][j] = i∗j;
A. O(m2m^2m2)
B. O(n2n^2n2)
C. O(m × n)
D. O(m + n)
答案:C
95.算法分析的两个主要方面是( )。
A. 空间复杂度和时间复杂度
B. 正确性和简明性
C. 可读性和文档性
D. 数据复杂性和程序复杂性
答案:A
96.顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )。
A. 100
B. 105
C. 108
D. 110
答案:C
97.用数组表示线性表的优点是()。
A. 便于插入和删除操作
B. 便于随机存取
C. 可以动态地分配存储空间
D. 不需要占用一片相邻的存储空间
答案:B
98.带头结点的单链表|h|为空的判定条件是:
A. |h == NULL;|
B. |h->next == NULL;|
C. |h->next == h;|
D. |h != NULL;|
答案:B
99.假设有5个整数以1、2、3、4、5的顺序被压入堆栈,且出栈顺序为3、5、4、2、1,那么为了获得这样的输出,堆栈大小至少为:
A. 2
B. 3
C. 4
D. 5
答案:C
100.设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是?
A. 3 2 1 5 4
B. 5 1 2 3 4
C. 4 5 1 3 2
D. 4 3 1 2 5
答案:A
101.为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是?
A. 堆栈
B. 队列
C. 树
D. 图
答案:B
102.在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是( )。
A. f->next=s; f=s;
B. r->next=s; r=s;
C. s->next=s; r=s;
D. s->next=f; f=s;
答案:B
103.二叉树中第5层(根的层号为1)上的结点个数最多为:
A. 8
B. 15
C. 16
D. 32
答案:C
104.完全二叉树的第5层有3个节点,该完全二叉树总计有多少个节点( ).
A. 18
B. 19
C. 35
D. 34
答案:A
105.深度为k的完全二叉树至少有(1)个结点,至多有(2)个结点。
A.(1)2k-1 (2)2k-1
B.(1)2k (2)2^{k}-1
C.(1)2^{k} (2)2^{k}+1
D.(1)2^{k-1}(2)2^{k}-1
答案:D
106.在一棵完全二叉树中,其根的序号为1,( )可判定序号为 p和q 的两个结点是 否在同一层。
A.
B.
C.
D.
答案:A
107.如果一个完全二叉树最底下一层为第六层(根为第一层)且该层共有8个叶结点,那么该完全二叉树共有多少个结点?
A. 31
B. 39
C. 63
D. 71
答案:B
109.已知字符集{ a, b, c, d, e, f, g, h }。若各字符的哈夫曼编码依次是 0100, 10, 0000, 0101, 001, 011, 11, 0001,则编码序列 0100011001001011110101 的译码结果是
A.acgabfh
B.adbagbb
C.afbeagd
D.afeefgd
答案:D
110.由分别带权为9、2、5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长度为:
A. 23
B. 37
C. 44
D. 46
答案:C
111.设有13个值,用它们构成一棵哈夫曼树,则该哈夫曼树共有结点数是( )。
A. 13
B. 12
C. 26
D. 25
答案:D
112.设哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点。
A. 99
B. 100
C. 101
D. 102
答案:B
113.设一段文本中包含字符{a, b, c, d, e},其出现频率相应为{3, 2, 5, 1, 1}。则经过哈夫曼编码后,文本所占字节数为:
A.40
B.36
C.25
D.12
答案:C
114.
A.集合结构
B.线性结构
C.树形结构
D.图状结构
答案:A
115.数据结构可以从逻辑上分成 ▁▁▁▁▁ 两大类。
A. 动态结构和静态结构
B. 紧凑结构和非紧凑结构
C. 线性结构和非线性结构
D. 内部结构和外部结构
答案:C
116.以下关于数据结构的说法中错误的是( )。
A. 数据结构相同,对应的存储结构也相同
B. 数据结构涉及数据的逻辑结构、存储结构和施加其上的操作3个方面
C. 数据结构操作的实现与存储结构有关
D. 定义逻辑结构时可不考虑存储结构
答案:A
117.计算机所处理的数据一般具有某种关系,这是指( )。
A. 数据与数据之间存在的某种关系
B. 数据元素与数据元素之间存在的某种关系
C. 元素内数据项与数据项之间存在的某种关系
D. 数据文件内记录与记录之间存在的某种关系
答案:B
118.在计算机的存储器中表示时,逻辑上相邻的两个元素对应的物理地址也是相邻的,这种存储结构称之为( )
A. 逻辑结构
B. 顺序存储结构
C. 链式存储结构
D. 以上都正确
答案:B
119.在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还要存储( )。
A. 数据的处理方法
B. 数据元素的类型
C. 数据元素之间的关系
D. 数据的存储方法
答案:C
120.数据元素在计算机存储器内表示时,物理相对位置和逻辑相对位置相同并且是连续的,称之为( )。
A. 逻辑结构
B. 顺序存储结构
C. 链式存储结构
D. 以上都不对
答案:B
121.在数据结构中,与所使用的计算机无关的是数据的( )结构。
A. 逻辑
B. 存储
C. 逻辑和存储
D. 物理
答案:A
122.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( )
A. 数据元素具有同一特点
B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
C. 每个数据元素都一样
D. 数据元素所包含的数据项的个数要相等
答案:B
123.以下属于顺序存储结构优点的是( )。
A. 存储密度大
B. 插入运算方便
C. 删除运算方便
D. 可方便地用于各种逻辑结构的存储表示
答案:A
124.被计算机加工的数据元素不是孤立的,它们彼此之间一般存在某种关系,通常把数据元素之间的这种关系称为
A. 规则
B. 结构
C. 集合
D. 运算
答案:B
125.与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。
A. 存储结构
B. 存储实现
C. 逻辑结构
D. 运算实现
答案:C
126.数据在计算机内存中的表示是指() 。
A. 数据的存储结构
B. 数据结构
C. 数据的逻辑结构
D. 数据元素之间的关系
答案:A
127.树形结构中元素之间存在()关系。
A. 一对一
B. 一对多
C. 多对多
D. 多对一
答案:B
128.算法的时间复杂度取决于( )
A. 问题的规模
B. 待处理数据的初态
C. A和B
答案:C
129.算法分析的两个主要方面是( )
A. 空间复杂度和时间复杂度
B. 正确性和简明性
C. 可读性和文档性
D. 数据复杂性和程序复杂性
答案:A
130.
A.O(m × n × t)
B.O(m + n + t)
C.O(m + n × t)
D.O(m × t + n)
答案:A
131.
A.n^{2}
B.n^{2}/2
C.n(n+1)
D.n(n+1)/2
答案:D
132.以下程序段的时间复杂度是 For (int i = 0; i ∗ i < n; i++) { printf("%d\n", i); }
A.
B.
C.
D.
答案:B
133.
A.
B.
C.
D.
答案:B
134.算法的时间复杂度取决于( )。
A. 问题的规模
B. 待处理数据的初态
C. 计算机的配置
D. A和B
答案:D
135.
A.O(n)
B.O(n^2)
C.O(1)
D.
答案:D
136.
A.O(1)
B.
C.O(n)
D.
答案:B
137.
A.O(n)
B.O(100)
C.O(1)
D.O(404)
答案:C
138.下面叙述正确的是?
A. 算法的执行效率与数据的存储结构无关
B. 算法的空间复杂度是指算法程序中指令(或语句)的条数
C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止
D. 其他三种描述都不对
答案:C
139.计算算法的时间复杂度属于( )。
A. 事前统计的方法
B. 事前分析估算的方法
C. 事后统计的方法
D. 事后分析估算的方法
答案:B
140.
A.O(N)
B.O(N^2)
C.O(N^3)
D.O(N^4)
答案:C
141.
A.O(N^3)
B.O(N^4)
C.O(N^5)
D.O(N^6)
答案:B
142.
A.
B.
C.
D.
答案:A
143.
A.O(n)
B.O(n ^ 2)
C.
D.O(1)
答案:D
144.
A.
B.O(n)
C.O(2 ^ n)
D.
答案:D
145.
A.O(n ^ 2)
B.O(n)
C.
D.
答案:C
146.T(n)表示当输入规模为n时的算法效率,以下算法中效率最优的是( )。
A.T(n)=T(n-1)+1,T(1)=1
B.T(n)=2n^2
C.T(n)=T(n/2)+1,T(1)=1
D.
答案:C
147.对于顺序存储的长度为NNN的线性表,访问结点和增加结点的时间复杂度为:
A.O(1), O(1)
B.O(1), O(N)
C.O(N), O(1)
D.O(N), O(N)
答案:B
148.在N个结点的顺序表中,算法的时间复杂度为O(1)的操作是
A.
B.
C.
D.
答案:A
149.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储方式最节省时间?
A. 双链表
B. 单循环链表
C. 带头结点的双循环链表
D. 顺序表
答案:D
150.数组A[1..5,1..6]每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为:
A. 1120
B. 1125
C. 1140
D. 1145
答案:C
151.(neuDS)线性表的顺序存储结构是一种( )
A. 随机存取的存储结构
B. 顺序存取的存储结构
C. 索引存取的存储结构
D. 散列存取的存储结构
答案:A
152.若线性表最常用的操作是存取第i个元素及其前驱的值,则采用( )存储方式节省时间。
A.单链表
B.双向链表
C.单循环链表
D.顺序表
答案:D
解析:若线性表最常用的操作是存取第 i 个元素及其前驱元素的值,则采用 存储方式最节省运算时间
153.若长度为n的线性表采用顺序结构,在第i个数据元素之前插入一个元素,需要它依次向后移动()个元素。
A. n-i
B. n-i+1
C. n-i-1
D. i
答案:B
154.以下说法错误的是( )。
A. 求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构
B. 顺序存储的线性表可以随机存取
C. 由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活
D. 线性表的链式存储结构优于顺序存储结构
答案:D
155.线性表L=(a1, a2 ,……,an )用一维数组表示,假定删除线性表中任一元素的概率相同(都为1/n),则删除一个元素平均需要移动元素的个数是()。
A. n/2
B. (n+1)/2
C. (n-1)/2
D. n
答案:C
156.在包含 n 个数据元素的顺序表中,▁▁▁▁▁ 的时间复杂度为 O(1)
A.
B.
C.
D.
答案:A
157.顺序表是线性表的( )
A. 链式存储结构
B. 顺序存储结构
C. 索引存储结构
D. 散列存储结构
答案:B
158.线性表若采用链式存储结构时,要求内存中可用存储单元的地址
A. 必须是连续的
B. 连续或不连续都可以
C. 部分地址必须是连续的
D. 一定是不连续的
答案:B
159.线性表L在什么情况下适用于使用链式结构实现?
A. 需不断对L进行删除插入
B. 需经常修改L中的结点值
C. L中含有大量的结点
D. L中结点结构复杂
答案:A
160.链表不具有的特点是:
A. 插入、删除不需要移动元素
B. 方便随机访问任一元素
C. 不必事先估计存储空间
D. 所需空间与线性长度成正比
答案:B
161.在具有NNN个结点的单链表中,实现下列哪个操作,其算法的时间复杂度是O(N)O(N)O(N)?
A. 在地址为ppp的结点之后插入一个结点
B. 删除开始结点
C. 遍历链表和求链表的第iii个结点
D. 删除地址为ppp的结点的后继结点
答案:C
162.对于一个具有N个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为
A.O(1)
B.O(N/2)
C.O(N)
D.O(N^2)
答案:C
163.在单链表中,将 s 所指新结点插入到 p 所指结点之后,其语句应该为 ▁▁▁▁▁ 。
A. p->next = s; s->next = p->next;
B. s->next = p->next; p->next = s;
C. s->next = p->next; p->next = s->next;
D. p->next = s->next; s->next = p->next;
答案:B
164.从栈顶指针为|ST|的链栈中删除一个结点且用|X|保存被删结点的值,则执行:
A. |X= ST->data;|
B. |X= ST; ST = ST->next;|
C. |X= ST->data; ST = ST->next;|
D. |ST = ST->next; X= ST->data;|
答案:C
165.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。若元素a、b、c、d、e依次入此队列后再进行出队操作,则不可能得到的出队序列是:
A. b a c d e
B. d b a c e
C. e c b a d
D. d b c a e
答案:D
166.若用大小为6的数组来实现循环队列,且当前|front|和|rear|的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,|front|和|rear|的值分别为多少?
A. 2和0
B. 2和2
C. 2和4
D. 2和6
答案:A
167.如果循环队列用大小为|m|的数组表示,队头位置为|front|、队列元素个数为|size|,那么队尾元素位置|rear|为:
A. |front+size|
B. |front+size-1|
C. |(front+size)%m|
D. |(front+size-1)%m|
答案:D
168.若用一个大小为6的数组来实现循环队列,且当前rear和fornt的值分别为0和3。从当前队列中删除一个元素,再加入两个元素后,rear和front的值分别为( )。
A. 1和5
B. 2和4
C. 4和2
D. 5和1
答案:B
169.设一数列的顺序为1,2,3,4,5,6,通过队列操作可以得到( )的输出序列。
A. 3,2,5,6,4,1
B. 1,2,3,4,5,6
C. 6,5,4,3,2,1
D. 4,5,3,2,6,1
答案:B
170.在一个顺序存储的循环队列中,若队尾指针指向队尾元素的后一个位置,则队头指针一般指向队头元素的( )。
A. 前一个位置
B. 后一个位置
C. 当前位置
D. 后两个位置
答案:C
171.在由n个元素组成的顺序存储的循环队列sq中,假定f和r分别为队头指针和队尾指针,则判断队满的条件是( )。
A. f ==(r+1)%n
B. (r - 1)%n==f
C. f == r
D. (f + 1)%n == f
答案:A
172.循环顺序队列中是否可以插入下一个元素()。
A. 与队头指针和队尾指针的值有关
B. 只与队尾指针的值有关,与队头指针的值无关
C. 只与数组大小有关,与队首指针和队尾指针的值无关
D. 与曾经进行过多少次插入操作有关
答案:A
173.判断一个循环队列QU(最多元素为MaxSize)为空的条件是()。
A. QU.front == QU.rear
B. QU.front != QU.rear
C. QU.front == (QU.rear + 1) % MaxSize
D. QU.front != (QU.rear + 1) % MaxSize
答案:A
174.(neuDS)在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判空条件是( )。
A. front==rear
B. front!=rear
C. front==rear+1
D. front==(rear+1)% maxSize
答案:A
175.(neuDS)在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判满条件是( )。
A. front==rear
B. front!=rear
C. front==rear+1
D. front==(rear+1)% maxSize
答案:D
176.(neuDS)在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的长度是( )。
A. rear-front
B. rear-front+1
C. (rear-front+maxSize)%maxSize
D. (rear-front+1)%maxSize
答案:C
177.在一个链队列中,front和rear分别为头指针和尾指针,则插入一个结点s的操作为( )。
A. front=front->next
B. s->next=rear;rear=s
C. rear->next=s;rear=s;
D. s->next=front;front=s;
答案:C
178.在少用一个元素空间的循环队列(m为最大队列长度)是满队列的条件( )。
A.(rear+1)==front
B.front==(front+1)%m
C.rear==front
D.(rear+1)%m==front
答案:D
179.设一个循环队列Q[maxSize]的队头指针为front,队尾指针为rear,队列最大容量为maxSize,此外该队列再没有其他数据成员,则队列的队满条件是( )。
A. Q.front == Q.rear
B. Q.front+Q.rear >= maxSize
C. Q.front == (Q.rear +1) % maxSize
D. Q.rear == (Q.f ront+1) % maxSize
答案:C
180.关于栈和队列的下列说法正确的是()
A.栈的插入操作是在栈顶进行,插入时需将栈内所有元素后移;
B.栈是后进先出的结构,出栈时除了栈顶元素,其余元素无需移动;
C.循环队列的出队操作删除的是队头元素,采用循环队列存储时,其余队列元素均需移动;
D.链队列的入队操作在表尾进行,操作时间与队列长度成正比
答案:B
181.循环队列存储在数组A[0..m]中,其头尾指针分别为front和rear,头指针front总是指向队头元素,尾指针rear总是指向队尾元素的下一个位置,则入队时的操作为( )。
A. rear=rear+1
B. rear=(rear+1)%(m-1)
C. rear=(rear+1)%m
D. rear=(rear+1)%(m+1)
答案:D
182.现有队列 Q 与栈 S,初始时 Q 中的元素依次是{ 1, 2, 3, 4, 5, 6 }(1在队头),S 为空。若允许下列3种操作:(1)出队并输出出队元素;(2)出队并将出队元素入栈;(3)出栈并输出出栈元素,则不能得到的输出序列是:
A. 1, 2, 5, 6, 4, 3
B. 2, 3, 4, 5, 6, 1
C. 3, 4, 5, 6, 1, 2
D. 6, 5, 4, 3, 2, 1
答案:C
183.循环队列存储在数组A[0..n-1]中,其头尾指针分别为f和r,头指针f总是指向队头元素,尾指针r总是指向队尾元素的下一个位置,假设队列不空,元素出队时头尾指针的操作为( )。
A. f=(f+1)%n
B. f=f+1
C. r=(r+1)%n
D. f=(f+1)%(n-1)
答案:A
184.用链接方式存储的队列,在进行删除运算时( )。
A. 仅修改头指针
B. 仅修改尾指针
C. 头、尾指针都要修改
D. 头、尾指针可能都要修改
答案:D
185.已知循环队列的存储空间为数组A[21],front指向队头元素的前一个位置,rear指向队尾元素,假设当前front和rear的值分别为8和3,则该队列的长度为( )。
A. 5
B. 6
C. 16
D. 17
答案:C
186.循环队列的引入,目的是为了克服( )。
A. 假溢出问题
B. 真溢出问题
C. 空间不够用
D. 操作不方便
答案:A
187.循环队列的队满条件为 ( )。
A. (sq.rear+1) % maxsize ==(sq.front+1) % maxsize
B. (sq.front+1) % maxsize ==sq.rear
C. (sq.rear+1) % maxsize ==sq.front
D. sq.rear ==sq.front
答案:C
188.栈和队列的共同点是( )。
A. 都是先进先出
B. 都是先进后出
C. 只允许在端点处插入和删除元素
D. 没有共同点
答案:C
189.已知初始为空的队列 Q 的一端仅能进行入队操作,另外一端既能进行入队操作又能进行出队操作。若 Q 的入队序列是 1、2、3、4、5,则不能得到的出队序列是:
A. 5、4、3、1、2
B. 5、3、1、2、4
C. 4、2、1、3、5
D. 4、1、3、2、5
答案:D
190.在下述结论中,正确的是:①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A. ①④
B. ②④
C. ①②③
D. ②③④
答案:A
191.完全二叉树的第6层有2个节点,该完全二叉树总计有多少个节点( ).
A. 33
B. 34
C. 66
D. 65
答案:A
192.完全二叉树的第8层有7个节点,该完全二叉树总计有多少个节点( ).
A. 134
B. 135
C. 263
D. 262
答案:A
193.设高为h的二叉树(规定叶子结点的高度为1)只有度为0和2的结点,则此类二叉树的最少结点数和最多结点数分别为:
A.
B.
C.
D.
答案:B
194.设一棵非空完全二叉树 TTT 的所有叶节点均位于同一层,且每个非叶结点都有 2个子结点。若 TTT 有 kkk 个叶结点,则 TTT 的结点总数是:
A.
B.2k
C.k^2
D.
答案:A
解析:一棵非空完全二叉树T的所有叶结点均位于同一层,且每个非叶结点都有2个子结点就是满二叉树。 则有 k = 2^(h-1) T的结点总数n=2^(h-1)-1+k = 2k-1
195.已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是:
A. 39
B. 52
C. 111
D. 119
答案:C
196.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( )。
A. 250
B. 500
C. 254
D. 501
答案:D
197.具有1102个结点的完全二叉树一定有__个叶子结点。
A. 79
B. 551
C. 1063
D. 不确定
答案:B
198.对NNN(N≥2N\ge 2N≥2)个权值均不相同的字符构造哈夫曼树。下列关于该哈夫曼树的叙述中,错误的是:
A. 树中一定没有度为1的结点
B. 树中两个权值最小的结点一定是兄弟结点
C. 树中任一非叶结点的权值一定不小于下一层任一结点的权值
D. 该树一定是一棵完全二叉树
答案:D
199.为五个使用频率不同的字符设计哈夫曼编码,下列方案中哪个不可能是哈夫曼编码?
A. 00,100,101,110,111
B. 000,001,01,10,11
C. 0000,0001,001,01,1
D. 000,001,010,011,1
答案:A
200.下列叙述错误的是()。
A.一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和
B.当一棵具有n 个叶子结点的二叉树的WPL 值为最小时,称其树为哈夫曼树,其二叉树的形状是唯一的
C.哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近
D.哈夫曼树的结点个数不能是偶数
答案:B
解析:树的形状是唯一的
202.已知字符集{ a, b, c, d, e, f },若各字符出现的次数分别为{ 6, 3, 8, 2, 10, 4 },则对应字符集中各字符的哈夫曼编码可能是:
A.00, 1011, 01, 1010, 11, 100
B.00, 100, 110, 000, 0010, 01
C.10, 1011, 11, 0011, 00, 010
D.0011, 10, 11, 0010, 01, 000
答案:A
203.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
A. 24
B. 48
C. 72
D. 53
答案:D
204.由权值分别为8,4,6,5,7的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
A. 30
B. 60
C. 69
D. 90
答案:C
205.下列说法不正确的是:
A. 图的遍历是从给定的源点出发每一个顶点仅被访问一次
B. 遍历的基本算法有两种:深度遍历和广度遍历
C. 图的深度遍历是一个递归过程
D. 图的深度遍历不适用于有向图
答案:D
206.图的深度优先遍历类似于二叉树的:
A. 先序遍历
B. 中序遍历
C. 后序遍历
D. 层次遍历
答案:A
207.如果从无向图的任一顶点出发进行一次深度优先搜索可访问所有顶点,则该图一定是:
A. 连通图
B. 完全图
C. 有回路的图
D. 一棵树
答案:A
208.
A.V1,V2,V3,V4,V7,V6,V5
B.V1,V5,V4,V7,V6,V2,V3
C.V1,V5,V6,V4,V7,V2,V3
D.V1,V5,V4,V7,V6,V3,V2
答案:D
209.图的深度优先遍历递归算法,要用一种称为( )的数据结构。
A. 栈
B. 队列
C. 顺序表
D. 链表
答案:A
210.如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则下列说法中不正确的是:
A. G肯定不是完全图
B. G中一定有回路
C. G一定不是连通图
D. G有2个连通分量
答案:B
211.图的广度优先遍历类似于二叉树的:
A. 先序遍历
B. 中序遍历
C. 后序遍历
D. 层次遍历
答案:D
212.以下算法的功能是()。Void graph1( adjmatrix GA, int i, int n, int ∗visited){ int k, j; Queue q;Cout<<i<<‘ ‘; visited[i]= 1; InitQueue( q);EnQueue (q, i); while ( !EmptyQueue(q) ) { k= OutQueue (q);For( j=0; j<n; j++) { if ( GA[k][j] != 0 && GA[k][j] != MaxValue && !visited[j] ) {Cout<<j<<‘ ‘; visited[j] = 1;EnQueue (q, j); } } }}
A. 从顶点i出发进行深度优先遍历
B. 从顶点i出发进行广度优先遍历
C. 输出顶点i的各邻接点
D. 输出从顶点i出发到各顶点的路径
答案:B
213.在图的广度优先遍历算法中用到一个队列,每个顶点最多进队____次。
A. 1
B. 2
C. 3
D. 不确定
答案:A
214.用邻接表表示图进行广度优先遍历时,通常借助( )来实现算法。
A. 栈
B. 队列
C. 树
D. 图
答案:B
215.
A.22
B.20
C.15
D.8
答案:D
216.
A.20
B.22
C.8
D.15
答案:C
217.无向连通图的最小生成树( )
A. 一定唯一
B. 有一个或多个
C. 一定有多个
D. 可能不存在
答案:B
218.对某个带权连通图构造最小生成树,以下说法中正确的是()。Ⅰ.该图的所有最小生成树的总代价一定是唯一的Ⅱ.该图的最小生成树是唯一的Ⅲ.用Prim算法从不同顶点开始构造的所有最小生成树一定相同Ⅳ.使用Prim和Kruskal算法得到的最小生成树总不相同
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅲ
D. 仅Ⅱ、Ⅳ
答案:A
244.在图中自a点开始进行深度优先遍历算法可能得到的结果为:
A.A,B,E,C,D, f
B.A,C,F,E,B, d
C.A,E,B,C,F, d
D.A,E,D,F,C, b
答案:D
245.
A. V1,V2,V3,V4,V5,V6
B. V1,V2,V4,V5,V6,V3
C. V1,V3,V5,V2,V4,V6
D. V1,V3,V5,V6,V2,V4
答案:B
246.
A. V1,V5,V4,V7,V6,V2,V3
B. V1,V2,V3,V4,V7,V6,V5
C. V1,V5,V4,V7,V6,V3,V2
D. V1,V5,V6,V4,V7,V2,V3
答案:C
247.
A. V0 ,V1 ,V2 ,V5 ,V4 ,V6 ,V3 ,V7
B. V0 ,V3 ,V6 ,V7 ,V4 ,V1 ,V2 ,V5
C. V0 ,V4 ,V1 ,V2 ,V5 ,V6 ,V7 ,V3
D. V0 ,V1 ,V4 ,V3 ,V6 ,V7 ,V2 ,V5
答案:D
248.
A. V0 ,V1 ,V3 ,V4 ,V2 ,V6 ,V5 ,V7
B. V0 ,V3 ,V1 ,V4 ,V2 ,V6 ,V5 ,V7
C. V0 ,V3 ,V1 ,V4 ,V6 ,V2 ,V7 ,V5
D. V0 ,V4 ,V3 ,V1 ,V6 ,V2 ,V7 ,V5
答案:B
249.
A. BCFADE
B. DCEFBA
C. AFEBCD
D. CDFBAE
答案:D
250.
A. 4501362
B. 4526301
C. 4561023
D. 4563201
答案:D
251.
A. (A,D)
B. (D,E)
C. (C,E)
D. (B,C)
答案:C
252.
A. 21
B. 30
C. 34
D. 35
答案:B
253.下列选项中,不是下图深度优先搜索序列的是:
A. V1 , V5 , V4 , V3 , V2
B. V1 , V3 , V2 , V5 , V4
C. V1 , V2 , V5 , V4 , V3
D. V1 , V2 , V3 , V4 , V5
答案:D
254.若某图的深度优先搜索序列是{V1, V4, V0, V3, V2},则下列哪个图不可能对应该序列?
A.
B.
C.
D.
答案:C
255.若某图的深度优先搜索序列是{V2, V0, V4, V3, V1},则下列哪个图不可能对应该序列?
A.
B.
C.
D.
答案:D
256.给定一个图的邻接矩阵如下,则从V1出发的深度优先遍历序列(DFS,有多种选择时小标号优先)是:
A. V1, V2, V4, V3, V6, V8, V10, V9, V7, V5
B. V1, V2, V3, V4, V5, V6, V7, V9, V8, V10
C. V1, V2, V4, V6, V8, V10, V9, V7, V5, V3
D. V1, V2, V3, V5, V7, V9, V10, V6, V8, V4
答案:C
257.在图中自a点开始进行广度优先遍历算法可能得到的结果为:
A.A,E,D,F,C, b
B.A,C,F,E,B, d
C.A,E,B,C,F, d
D.A,B,E,C,D, f
答案:D
258.给定一个图的邻接矩阵如下,则从V1出发的宽度优先遍历序列(BFS,有多种选择时小标号优先)是
A. V1, V2, V4, V3, V6, V8, V10, V9, V7, V5
B. V1, V2, V3, V4, V5, V6, V7, V9, V8, V10
C. V1, V2, V4, V6, V8, V10, V9, V7, V5, V3
D. V1, V2, V3, V5, V7, V9, V10, V6, V8, V4
答案:B
259.
A. CBDAEFGH
B. CDABEHFG
C. CBAEHGFD
D. CBDAEHFG
答案:D