1、7n个元素的顺序查找(检索)的平均查找长度为(n+1)/2 。三、单选题(本题的每一备选答案中,只有一个是正确的,请把你认为正确的答案填入括号内,多选不给分,每小题3分,共15分)1若进栈序列为1,2,3,4,则不可能得到的出栈序列是( C )。 A)3,2,1,4 B)3,2,4,1C)4,2,3,1 D)2,3,4,12对于图1所示的二叉树,其后序序列为(C )。 A)ABDECFG B)DBEAFCG C)DEBFGCA D)GFCEBDA3对于图2所示的AOV网,不能出现的拓扑序列为( A )。 A)1 2 3 4 5 B)1 2 4 3 5 C)2 4 1 3 5 D)2 1 4 3
2、 5图1 图24深度为k的完全二叉树所含叶结点的个数最多为( B)。 A)2k B) 2k-1 C)k D) 2k 5衡量查找算法效率的主要标准是( C )。 A)元素个数 B)所需的存储量 C)平均查找长度 D)算法难易程度 四、应用题(25分)1给定B树如图3所示,画出将14插入到B树后的情形。(3分) 图32对图4进行如下操作:(1)写出其邻接矩阵。(2分)(2)按Kruskal算法求其最小生成树,并写出相应的边集数组图4|0 12 5 |12 0 8 10 | 8 0 3|5 0 6 | 10 6 0 11| 3 11 0|3请画出后序序列和中序序列相同的二叉树的所有形态。(3分)1:
3、只有左子树2:一个结点3:空树4散列函数为H(k)=k%7,散列表的地址为06,用线性探查法解决冲突,建立散列表ht。给定关键字序列为32,13,49,55,22,38,21。要求:(1)构造散列表(只画出表,不写算法)。(5分)位置: 0 1 2 3 4 5 6关键字: 49 55 22 38 32 21 13比较次数:1 3 2 1 1 6 1 (2)求出平均查找长度。WPL=(1+3+2+1+1+6+1)/7=15/75用直接选择排序法对下列关键字进行排序,请写出每一趟排序的结果。(6分) 68 45 20 90 15 10 50第一趟:10 45 20 90 15 68 50第二趟:1
4、0 15 20 90 45 68 50第三趟:第四趟:10 15 20 45 90 68 50第五趟:10 15 20 45 50 68 90第六趟:五、算法设计(在下列算法的横线上填上适当的表达式、语句或运算符。每空3分,共30分)1在带头结点的head单链表的结点a之后插入新元素x。class node public:elemtype data;node *next; ;void lkinsert (node *head, elemtype x) node *s, *p;s=_new node;_s-data=_x;_;p=head-next;while (p!=NULL) &( p-da
5、ta!=a )_p=p-next_;if (p=NULL)coutnext=p-next_;_p-next=s_;2快速排序void qksort (int R , int p, int q) /按递对RpRq 进行快速排序 int i=p, j=q;R 0 =R i ; /R0作临时单元while (_ii )&( R j _=_R 0 ) j-; if (ji) R i =R j ; i+;while (ij )& (R i _=_R 0 ) i+; if (ip) qksort(R,p,j);if (iq) qksort(R,i,q)_;模拟试题三( )1数据是计算机加工处理的对象。(
6、)2数据结构的概念包括数据的逻辑结构、数据在计算机中的存储方式和数据的运算三个方面。 ( )3线性表是由n0个相同类型元素组成的有限序列。( )4栈是一种后进先出的线性表。( )5从循环链表的某一结点出发,只能找到它的后继结点,不能找到它的前驱结点。( )6单链表设置头结点的目的是为了简化运算。( )7深度为h(空二叉树的深度为0)的二叉树,最多有2h-1个结点。( )8图G由两个集合V(G)和E(G)所组成,其中顶点集V(G)可以为空集,而边集E(G)不能为空。( )9散列法是一种对关键字进行运算的查找方法和存储方法。( )10快速排序在任何情况下都是速度最快的一种排序方法。1数据元素之间存
7、在的相互关系称为 。2数据结构从逻辑上分为 结构和 结构。3线性表的顺序存储结构称为 。4所有插入在表的一端进行,而所有删除在表的另一端进行的线性表称为 。5深度为h(空二叉树的深度为0)的二叉树,最少有 个结点。6折半查找要求待查表为 表。7n个记录按其关键字大小递增或递减的次序排列起来的过程称为 。8用链表存储数据时,不仅要存储数据元素的 ,还要存储元素之间的相互 。1与线性表的链接存储相符的特性是( )。 A)插入和删除操作灵活 B)需要连续存储空间 C)便于随机访问 D)存储密度大2若进队序列为1,2,3,4,则出队序列是( )。 A)4,3,2,1 B)1,2,3,4 C)1,3,2
8、,4 D)3,2,4,13已知广义表A=(a,b),(c,d),则head(A)等于( )。 A)(a,b) B)(a,b) C)a,b D)a4n个结点的二叉树,若用二叉链表作为存储结构,则非空闲的左、右孩子链域为( )。 A)n B)2n C)n-1 D)n+1 56个顶点的连通图的深度优先生成树,其边数为( )。 A)6 B)5 C)7 D)4四、应用题(共25分)1给定B树如下,画出将19插入到B树后的情形。(4分)2对于给定的5个实数W=8,5,13,2,6,试构造Huffman树,并求出该树的最小带权路径长度。(7分)3对于下面所给的图,进行如下操作:(1)画出其邻接表。(2)写出
9、从V1出发的深度优先搜索序列。4给定有序表D=15,17,18,22,35,51,60,88,93,用折半查找法在D中查找18。现要求:(1)试用图示法表示查找过程。(2)求出其成功的平均查找长度ASL。五、算法设计(在下列算法的横线上填上适当的语句或表达式。1直接选择排序void selectsort (int R , int n ) / 按递增序对R 0 Rn-1 进行直接选择排序 int i, j, k, temp ; for (i=0; i= ; i+) k=i ; for (j= ; j=n-1; j+) if (R j R k ) k=j; if ( ) temp=R i ; R i = ; R k =temp;2中序遍历二叉树。设二叉树用二叉链表表示,以t为根指针,二叉链表结点的类型为node;栈s的元素类型为指向node的指针类型,栈容量m足够大。中序遍历的非递归算法如下:struct nodechar data; node *lc,*rc;void preorder (node *t) node *sm ,*p=t ;int top =- 1; /置栈空do while (p!=NULL) s+top = ; ; if (top!= -1) p=stop- -; ; while ( ) | ( p ! =NULL );
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1