1、在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。1下列几种算法时间复杂度中,最大的是AO(1) B.O(n)C.O(nlog2n) D.O(n2)2数据结构中结点按逻辑关系依次排列形成一条“链”的结构是A集合 B.图结构C.树形结构 D.线性结构3在表长为100的顺序表中做插入运算,平均移动元素的次数为A25 B.33C.50 D.1004已知尾指针的单向循环链表中,在第一个结点后面插入一个新结点,该算法的时间复杂度为AO(1) B.O(log2n)C.O(n) D.O(n2)5下列表述正确的是A栈空时出栈产生“上溢”,栈满时
2、进栈产生“下溢”B.栈空时出栈产生“下溢”,栈满时进栈产生“上溢”C.栈空时出栈和栈满时进栈均产生“上溢”D.栈空时出栈和栈满时进栈均产生“下溢”6.队列操作的原则是A.先进先出 B.后进先出C.先进后出 D.只进不出7一棵深度为6的满二叉树有A63个结点 B.64个结点C.127个结点 D.128个结点8.在一棵度为3的树中,度为3的结点有4个,度为2的结点有2个,度为1的结点有3个,则度为0的结点有A.8个 B.10个C.11个 D.12个9一棵二叉树T,度为2的结点数为20个,则叶子结点数为A19个 B.20个C.21个 D.22个10有10个叶结点的哈夫曼树中共有A10个结点 B.11
3、个结点C.19个结点 D.21个结点11求图中两个结点之间的最短路径采用的算法是A广度优先搜索(BFS)算法 B.克鲁斯卡尔(Kruskal)算法C.普里姆(Prim)算法 D.迪杰斯特拉(Dijkstra)算法12顺序查找算法的平均查找长度为Alog2n B.(n-1)/2C.n/2 D.(n+1)/213二叉排序树中,根的A左子树是二叉排序树、右子树不一定是二叉排序树B.左子树是二叉排序树、右子树也是二叉排序树C.左子树不一定是二叉排序树、右子树是二叉排序树D.左子树不一定是二叉排序树、右子树也不一定是二叉排序树14冒泡排序的时间复杂度为AO(n) B.O(nlog2n)C.O(n2) D
4、.O(log2n)15关于稳定性的表述,正确的是A稳定性是排序方法本身的特性,与数据无关B.稳定性不是排序方法本身的特性,与数据有关C.稳定性是排序方法本身的特性,与数据有关D.稳定性不是排序方法本身的特性,与数据无关非选择题部分用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。二、填空题(本大题共13小题,每小题2分,共26分)16数据中不可分割的最小标识单位是_数据项_。17双向循环链表中,在p所指结点的后面插入一个新结点*t,需要修改四个指针,分别为:t-prior=p;_t-next=p-next_;p-next-prior=t;next=t;。18.在带有头结点的循环链表
5、中,头指针为head,判断指针p所指结点为首结点的条件是_p=head-next_。19元素的进栈次序为1,2,3,n,出栈的第一个元素是n,则第k个出栈的元素是_n-k+1_。20在栈结构中,允许插入和删除的一端称为_栈顶_。21100个结点的二叉树采用三叉链表存储时,空指针域NULL有_102_个。22.某二叉树的先序遍历序列为ABKLMNO,中序遍历序列为BLKANMO,则该二叉树中结点A的右孩子为结点_M_。23一个二叉树的最少结点个数为_0_。24图中第一个顶点和最后一个顶点相同的路径称为回路。除第一个顶点和最后一个顶点相同外,其余顶点不重复的回路,称为_简单回路_。25设查找表有n
6、个数据元素,则二分查找算法的平均查找长度为_(n+1)/n)log2(n+1)-1_。26用键值通过散列函数获取存储位置的这种存储方式构造的存储结构称为_散列表_。27若在线性表中采用二分查找法查找元素,则该线性表必须按值有序,并且采用_顺序_存储结构。28堆分为最小堆和最大堆,若键值序列k1,k2,,kn,满足,则这n个键值序列k1,k2,,kn是_最大堆_。三、应用题(本大题共5小题,每小题6分,共30分)29设一个链栈的输入序列为X,Y,Z,试写出出栈的所有可能的输出序列及其操作步骤。答:共有五种可能的输出序列:输出XYZ,X进,X出,Y进,Y出,Z进,Z出输出YZX,X进,Y进,Y出,
7、Z进,Z出,X出输出YXZ,X进,Y进,Y出,X出,Z进,Z出输出XZY,X进,X出,Y进,Z进,Z出,Y出输出ZYX,X进,Y进,Z进,Z出,Y出,X出不能输出ZXY30设二叉树的先序遍历序列为DCBAHEIFG,中序遍历序列为ABCHDIEFG,试画出该二叉树并写出后序遍历序列。后序遍历序列为:ABHCIGFED31已知连通带权图如题31图所示,试利用普里姆(Prim)算法,从顶点A出发,构造它的最小生成树,画出构造过程。题31图32给定表(28,15,55,3,71,75,10,22,56),试按元素在表中的顺序将它们依次插入一棵初始时为空的二叉排序树,画出插入完成后的二叉排序树。33应
8、用直接选择排序算法,对初始关键字序列为48,35,61,98,82,18,29,48的记录进行从小到大排序,写出排序过程和结果。初始关键字:48,35,61,98,82,18,29,48第一趟排序后:18,35,61,98,82,48,29,48第二趟排序后:18,29,61,98,82,48,35,48第三趟排序后:18,29,35,98,82,48,61,48第四趟排序后:18,29,35,48,82,98,61,48第五趟排序后:18,29,35,48,48,98,61,82第六趟排序后:18,29,35,48,48,61,98,82第七趟排序后:18,29,35,48,48,61,82
9、,98 排序结果:四、算法设计题(本大题共2小题,每小题7分,共14分)34.单链表的结点结构定义如下:typedef struct node int data; struct node *next; Node, *LinkList;试编写在带头结点的单链表head中查找第1个元素值小于x的结点的实现算法Node *GetLinklist(LinkList head,int x),若找到,则返回指向该结点的指针,否则返回NULL。35假设树采用孩子兄弟链表表示法,其结构定义如下:typedef struct tnode DataType data; struct tnode *son, *brother;*Tree;试编写算法void leveltree(Tree root)实现树的按层次遍历。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1