一、填空题1、栈和队列的共同点是(只允许在端点处插入和删除元素)。
2、数据的逻辑结构有线性结构和(非线性结构) 两大类。
3、在最坏情况下,堆排序需要比较的次数为(O(nlog2n))4、一棵有n个结点的满二叉树有( 0 )个度为1的结点、有( (n-1)/2 )个分支(非终端)结点和((n+1)/2 )个叶子,该满二叉树的深度为(log2n +1)。
5、n (n﹥0) 个顶点的无向图最多有( n(n-1)/2)条边,最少有0条边。
6、判定一个栈ST(最多元素为m0)为栈满的条件是(top= =m0 )。
7、头结点是指:(指向链表中第一个结点(或为头结点或为首元结点) 的指针),称为头结点。
8.指出树和二叉树的三个主要差别①树的结点个数至少为1,而二叉树的结点个数可以为0;②树种结点的最大读书没有限制,而二叉树结点的最大度数不能超过2;③树的结点无左右之分,而二叉树的结点有左右之分。
9.从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是(树可采用二叉树的存储结构并利用二叉树的已有算法解决树的有关问题。
)10.若结点A有三个兄弟(包括A本身),并且B是A的双亲结点,B的度是( 4)11.若一棵具有n个结点的二叉树采用标准链接存储结构,那么该二叉树所有结点共有(n+1)个空指针域。
12.已知二叉树的前序序列为ABDEGCFHIJ,中序序列为DBGEAHFIJC,写出后序序列(DGEBHJIFCA)。
13.已知二叉树的后序序列为FGDBHECA,中序序列为BFDGAEHC ,并写出前序序列(ABDEGCEH)。
14.找出满足下列条件的二叉树答案1)先序和中序遍历,得到的结点访问顺序一样。
(无左子树)2)后序和中序遍历,得到的结点访问顺序一样。
(无右子树)3)先序和后序遍历,得到的结点访问顺序一样。
(仅一个结点的二叉树)15.一棵含有n个结点的k叉树,可能达到的最大深度和最小深度各是多少?最大n,最小┕log2n┙+116.一棵二叉树有67个结点,这些结点的度要么是0,要么是2。
这棵二叉树中度为2的结点有(22 )个。
17.含有100个结点的树有(99)条边。
18.一棵哈夫曼树有19个结点,则其叶子结点的个数是(10)。
19.设一棵二叉树结点的先根序列为ABDECFGH,中根序列为DEBAFCHG,则二叉树中叶子结点是(E F H)。
20.己知二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[0][0]的地址是(LOC(A[0][0])+(n*i+j)*k)。
21.二维数组A[10][20]采用列序为主方式存储,每个元素占一个存储单元,并且A[0][0]的存储地址是200,则A[6][12]的地址是(332)。
22.有一个10阶对称矩阵A,采用压缩存储方式(以行序为主,且A[0][0]=1),则A[8][5]的地址是(42)。
23.设n行n列的下三角矩阵A已压缩到一维数组S[1..n*(n+1)/2]中,若按行序为主存储,则A[i][j]对应的S中的存储位置是(i*(i+1)/2+j+1)。
24.若A是按列序为主序进行存储的4×6的二维数组,其每个元素占用3个存储单元,并且A[0][0]的存储地址为1000,元素A[1][3]的存储地址为(1030),该数组共占用(72)个存储单元。
25、算法的五个重要特性是(有穷性),(确定性),(可行性),输入,输出。
26、ADT(Abstract Data Type),即称为(抽象数据类型),是指一个数学模型及定义在该模型上的一组操作(运算);ADT只考虑数据的(一组逻辑特性)。
27、在树形结构中,每一个结点可以有多个(后件)结点,它们都称为该结点的(子结点)。
没有(后件)的结点称为(叶子结点)。
二、判断题1、线性表的逻辑顺序与存储顺序总是一致的。
×2、拓扑排序是一种内部排序的算法。
×3、在AOE网中,一定有不止一条关键路径。
×4、二维数组是其数据元素为线性表的线性表。
√5、一个栈的输入序列是12345,则输出序列43512是可能的。
×6、栈和队列是一种非线性数据结构。
(×)7、数据元素是数据的最小单位。
(×)8、顺序存储方式只能用于存储线性结构(×)。
9、二叉树中每个结点的两棵子树是有序的。
(√)10、快速排序是排序算法中平均性能最好的一种排序。
(√)11.二叉树中任何一个结点的度都是2。
(×)12.由二叉树结点的先根序列和后根序列可以唯一地确定一棵二叉树。
(√)13.一棵哈夫曼树中不存在度为1的结点。
(√)14.平衡二叉排序树上任何一个结点的左、右子树的高度之差的绝对值不大于1(√)15、链表中的头结点仅起到标识的作用。
(×)16、满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
(√)17、健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
(√)18、一个图按广度优先搜索法遍历的结果是惟一的。
(×)19、冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。
(√)三、单选题1、算法分析的两个主要方面是:AA)空间复杂性和时间复杂性 B)正确性和简明性C)可读性和文档性 D)数据复杂性和程序复杂性2、一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 B A)110 B)108 C)100 D)1203、在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:AA) 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)B) 在第i个结点后插入一个新结点(1≤i≤n)C) 删除第i个结点(1≤i≤n)D) 将n个结点从小到大排序4、已知指针p和q分别指向某单链表中第一个结点和最后一个结点。
假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为( B )A)q->next=s->next;s->next=p;B)s->next=p;q->next=s->next;C)p->next=s->next;s->next=q; D)s->next=q;p->next=s->next;5、关键路径是事件结点网络中的(A)A) 从源点到汇点的最长路径 B) 从源点到汇点的最短路径C) 最长的回路 D) 最短的回路6、表达式a*(b+c)-d的后缀表达式是(B)A) abcd*+- B) abc+*d- C) abc*+d- D) -+*abcd7假设以数组A[m]存放循环队列的元素。
已知队列的长度为length,指针rear指向队尾元素的下一个存储位置,则队头元素所在的存储位置为( A )A)(rear-length+m+1)%m B)(rear-length+m)%mC)(rear-length+m-1)%m D)(rear-length)%m8、对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为(C)。
A) 20/9 B) 18/9 C) 25/9 D) 22/99、在一棵具有n个结点的二叉树中,所有结点的空子树个数等于( C )A)n B)n-1 C)n+1 D)2*n10、在计算机内实现递归算法时所需的辅助数据结构是( A )A)栈 B)队列 C)树 D)图11、线性表采用链式存储结构时,其地址:( D )。
A) 必须是连续的 B) 部分地址必须是连续的 C) 一定是不连续的 D) 连续与否均可以12、向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动(B)个元素.A) 8 B) 63.5 C) 63 D) 713、在计算机中,算法是指( B )A)加工方法 B)解题方案的准确而完整的描述 C)排序方法 D)查询方法14、数据结构的三要素是指( B )。
A)数据元素、顺序存储、存储结构 B)数据元素、逻辑结构、存储结构C)顺序存储、链式存储、存储结构 D)数据元素、逻辑结构、链式存储15、判定一个队列QU(最多元素为m)为满队列的条件是: (A )A)QU->rear - QU->front = = m B)QU->rear - QU->front -1= = mC)QU->front = = QU->rear D)QU->front = = QU->rear+116.二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法(A)(A)正确(B)错误17.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法B(A)正确(B)错误18、设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为(B)。
(A)2h (B)2h-1(C)2h+1(D)h+119.已知某二叉树的后序遍历序列是dabec。
中序遍历序列是debac,它的前序遍历序列是(D)。
(A)acbed (B)decab(C)deabc (D)cedba20.如果T2是由有序树T转换而来的二叉树,那么T中结点的前序就是T2中结点的(B)(A)前序(B)中序(C)后序D.层次序21.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是(D)。
(A)bdgcefha (B)gdbecfha (C)bdgaechf (D)gdbehfca22.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。
这种说法(B)(A)正确(B)错误23.按照二叉树的定义,具有3个结点的二叉树有( C )种。
(A)3(B)4(C)5(D)624.在一非空二叉树的中序遍历序列中,根结点的右边(A)(A)只有右子树上的所有结点(B)只有右子树上的部分结点(C)只有左子树上的部分结点(D)只有左子树上的所有结点25.树最适合用来表示( C )。
(A)有序数据元素(B)无序数据元素(C)元素之间具有分支层次关系的数据(D)元素之间无联系的数据26.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序(A)(A)不发生改变(B)发生改变(C)不能确定D.以上都不对27.实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用(A )存储结构。
(A)二叉链表(B)广义表存储结构(C)三叉链表(D)顺序存储结构28.对一个满二叉树,m个树叶,n个结点,深度为h,则(D)(A)n=h+m (B)h+m=2n(C)m=h-1(D)n=2h-129.如果某二叉树的前序为stuwv,中序为uwtvs,那么该二叉树的后序为(C)(A)uwvts (B)vwuts(C)wuvts (D)wutsv30.具有五层结点的二叉平衡树至少有(B)个结点。