1.对于顺序存储的线性表,访问结点和增加结点的时间复杂度为( )。
A. O(n) O(n)
B. O(n) O(1)
C. O(1) O(n)
D. O(1) O(1)
顺序存储可以实现“随机存取”,因此访问结点的时间复杂度为O(1),而插入、删除结点由于涉及到大量移动元素,故其时间复杂度为O(n)。所以答案为C。
2.若栈采用顺序存储方式存储,现两栈共享空间V[1…m],top[i]代表第i个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是( )。
A. top[1]+top[2]=m
B. top[1]+1=top[2]
C. top[2]-top[1]|=0
D. top[1]=top[2]
两栈相对压栈,如图所示,由于空间为1~m,所以B就出来了,D的话,如果top[1]=top[2]的时候,这是不成立的,这样必有一个栈已经是满的,无法实现,所以答案为B。
3.下述有关栈和队列的区别,说法错误的是?
A. 栈是限定只能在表的一端进行插入和删除操作。
B. 队列是限定只能在表的一端进行插入和在另一端进行删除操作。
C. 栈和队列都属于线性表
D. 栈的插入操作时间复杂度都是o(1),队列的插入操作时间复杂度是o(n)
对于栈用栈顶指针表示栈顶,而栈的插入和删除操作均在栈顶进行。对于队列用队头和队尾指针分别表示允许插入和删除的一端。因此对于顺序存储和链式存储的栈和队列,进行插入和删除运算的时间复杂度均为O(1)。所以答案为D。
4.从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是:从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是:从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是……描述的是( )
A. 贪心
B. 回溯
C. 穷举
D. 分治
E. 递归
递归指的是一个过程:函数不断引用自身,直到引用的对象已知。所以答案为E。
5.某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( )
A. 不存在这样的二叉树
B. 200
C. 198
D. 199
根据二叉树的基本性质,对任何一棵二叉树,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。题目中度为 2 的结点为 199 个,则叶子结点为199+1=200 。所以本题答案为 B 。
6.某二叉树的前序遍历序列与中序遍历序列相同,均为 ABCDEF ,则按层次输出(同一层从左到右)的序列为( )
A. ABCDEF
B. BCDEFA
C. FEDCBA
D. DEFABC
二叉树遍历可以分为 3 种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。二叉树的中序遍历序列和前序遍历序列均为 ABCDEF ,可知该树只有右子树结点,没有左子树结点, A 为根结点。中序遍历序列与前序遍历序列相同说明该树只有右子树没有左子树,因此该树有 6 层,从顶向下从左向右依次为 ABCDEF 。所以本题答案为 A 。
7.初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:( )
A. 8 3 2 5 1 6 4 7
B. 3 2 8 5 1 4 6 7
C. 3 8 2 5 1 6 7 4
D. 8 2 3 5 1 4 7 6
堆排序:利用堆的性质进行的一种选择排序,所以答案为A。
8.解决散列法中出现冲突问题常采用的方法是( )。
A. 数字分析法、除余法、平方取中法
B. 数字分析法、除余法、线性探测法
C. 数字分析法、线性探测法、多重散列法
D. 线性探测法、多重散列法、链地址法
解决散列法中出现冲突问题常采用的方法有线性探测法、多重散列法、链地址法,本题答案为D。
9.以下哪种排序算法对(1,3,2,4,5,6,7,8,9)进行的排序最快?
A. 冒泡
B. 快排
C. 归并
D. 堆排
已经给出的数列是接近有序的,冒泡,只需要两趟就完了。第一趟把3和2调序后,第二趟发现没有交换,就知道已经有序了。
快速排序的话,还是按照普通的方式来操作,需要进行划分遍历,比较次数还是挺多的
归并和快速差不多,都需要进行划分操作
堆排序需要构建堆,需要全部执行完才知道是否有序。
所以本题答案为A。
10.设无向图的顶点个数为n,则该图最多有多少条边?
A. n-1
B. n(n+1)/2
C. n(n-1)/2
D. n
1个顶点没边,2个顶点1条,3个顶点3条,4个顶点6条,5个顶点10条那么所以就有当n>=3多的时候,任意2个顶点就会有一条边,所以答案为C。