贡献者: xzllxls
声明:“该内容来源于网络公开资料,不保证真实性,如有侵权请联系管理员”
1.算法复杂度通常是表达算法在最坏情况下所需要的计算量,
(A).算法执行 1 步就完成
(B).算法执行 1 秒钟就完成
(C).解决执行常数步就完成
(D).算法执行可变步数就完成
2.在数据结构中,按逻辑结构可把数据结构分为( )
(A).静态结构和动态结构
(B).线性结构和非线性结构
(C).顺序结构和链式结构
(D).内部结构和外部结构
3.在数据结构中,可用存储顺序代表逻辑顺序的数据结构为( )
(A). Hash 表
(B).二叉搜索树
(C).链式结构
(D).顺序结构
4. 对链式存储的正确描述是( )
(A).结点之间是连续存储的
(B).各结点的地址由小到大
(C).各结点类型可以不一致
(D).结点内单元是连续存储的
5. 在下列关于 “串” 的陈述中,正确的说明是( )
(A).串是一种特殊的线性表
(B).串中元素只能是字母
(C).串的长度必须大于零
(D).空串就是空白串
6.关于堆栈的正确描述是( )
(A). FILO
(B). FIFO
(C).只能用数组来实现
(D).可以修改栈中元素的数据
7. 假设循环队列的长度为 QSize. 当队列非空时,从其队列头取出数据后,其队头下标 Front 的变化为()
(A). Front = Front+ 1
(B). Front = (Front + 1) % 100
(C). Front = (Front+ 1) % QSize
(D). Front = Front % Qsize + 1
8. 假设 Head 是带头结点单向循环链的头结点指针,判断其为空的条件是( )
(A). Head.next = NULL
(B). Head~>next == Head
(C). Head->next = NULL
(D). Head = NULL
9.设 A[)][m]为一个对称矩阵,数组下标从[0[0)开始。为了节省存储,将其下三角部分按行存放在一维数组 B0.m-1], m=n(n+1)2, 对下三角部分中任一元素 4.fi≥D, 它在一-维数组 B 的下标 k 值是( )
(A). i(i-1)/2+j
(B). (-1)2+j-1
(C). (i+1)/2+j-1
(D). i(+1)2+j
10. 假设二又树的根结点为第
(A).
(B).
(C).
(D).
11. 若一棵二叉树的后序和中序序列分别是 dbefca 和 dbaef,则其先序序列是( )
(A). adbefc
(B). abdcfe
(C). adbcef
(D). abdcef
12.用一维数组来存储满二叉树,若数组下标从 0 开始,则元素下标为 k 的右子结点下标是( )(不考虑数组下标的越界问题)
(A).
(B).
(C).
(D).
13. 假设 LTree 和 RTree 是二叉搜索树 Tree 的左右子树,H(T)表示树 T 的高度。若树 Tree 是 AVL 树,则( )
(A). H(LTree) - H(RTree)= 0
(B). HCLTree)- H(RTree) < 1
(C). H(LTree) - H(RTree) <= 1
(D). H(LTree) - H(RTree) <= 1
14. 对
(A).
(B).
(C).
(D).
15. 用邻接矩阵存储有 n 个顶点和 e 条边的有向图,则删除与某个顶点相邻的所有边的时间复杂度是()
(A).
(B).
(C).
(D).
16. 下列排序算法中,时间复杂度最差的是( )
(A).选择排序
(B).桶(基数)排序
(C).快速排序
(D).堆排序
17. 基于比较的排序算法对 n 个数进行排序的比较次数下界为( )
(A).
(B).
(C).
(D).
18. 在下列存储条件下,( )是最适合 使用折半查找算法来进行查找操作。
(A).顺序存储
(B).链式存储
(C).散列存储
(D).数据有序且顺序存储
19. 在下列算法中,求图最小生成树的算法是( )
(A). DFS 算法
(B). KMP 算法
(C). Prim 算法
(D). Djkstra 算法
20. 若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( )
(A).顺序存储结构
(C).散列存储结构
1.假设有如图 1 所示的图
(1)写出图 1 的邻接矩阵;
(2)根据邻接矩阵从顶点 a 出发进行宽度(或广度)优先遍历,画出相应的宽度优先遍历树(同一个结点的邻接结点按结点序号大小为序)。
2.简单描述求图最小生成树的 Kruskal 算法(克鲁斯卡尔算法)的基本思想,并按步骤列出图 2 的最小生成树的求解过程。
3.简单叙述快速排序的思想,在 “第一个元素为支点” 前提下按步骤列出下列序列的排序过程。
待排序的数值序列: 45,12,56,87,34,78
4. 已知有下列 13 个元素的散列表:
其散列函数为 h(key)=key%m (m=13),处理冲突的方法为双重散列法,探查序列为:
间:对表中关键字 35 进行查找时,所需进行的比较次数为多少?依次写出每次的计算公式和值。s.假设设在通信中,字符 a, b,c,d, e,,g 出现的频率如下:
a:20% b: 7%
(2)给出每个字母所对应的赫夫曼编码,规定:结点左分支边上标 0,右分支边上标 I;
(3)计算其加权路径的长度 WPL.
1.排队是日常生活中常见的一种现象,比如:在商店排队付款。当第一位顾客完成付款离开后,其他顾客依次前移。下面用数据结构中的队列来模拟这种排队现象。
(1)初始化队列 Q(2)入队操作 EnQueu(Q, dat):若队列 Q 已满,返回 0,否则,把数据 data 加入队列 Q,并返回 1
(3)出队操作 DeQueue(Q, dat):若队列 Q 为空,则返回 0,否则,把队头元素存入地址参数 data,然后从队列 Q 中去除该队头元素,并返回 1.
2.假设有两个堆栈共享一个存储空间,其有关定义如下:
这二个堆栈在某个时刻的状态如下图所示。(1)初始化堆栈
(2)堆栈 1(左堆栈)压栈操作 (3)堆栈 2(右堆栈)出栈操作,并把栈顶元素的值赋给指针变量 data 所指向的存储单元
3.假设二叉树
已知二叉树的结点定义如下:
用 C 语言或类 C 语言实现下面函数的功能。
1.假设用链表表示集合,集合链表的结点定义如下:
例如: A={2.1,3},B=, 集合 A 和 B 的存储形式如下图所示。
试实现集合的下列二个操作:
(1) Set Intersection(Set *A, Set *B),其功能是返回集合 A 和 B 交集的首结点地址(10 分)
(2) int Cardinality(Set *A),其功能是返回集合 A 中的元素个数,即:求|AI (5 分)
例如有下列语句:
2.已知二叉树的结点定义如下:
编写函数 TraveralByLeve(BNode *ro0), 其功能是 “按层” 遍历以结点 roo 为根的二叉树,并输出每个结点中 Key 的信息。友情链接: 超理论坛 | ©小时科技 保留一切权利