1、数据结构期末复习题练习题:一、 填空题1、元素项是数据的最小单位,数据元素是讨论数据结构时涉及的最小数据单位。2、设一棵完全二叉树具有100个结点,则此完全二叉树有49个度为2的结点。3、在用于表示有向图的邻接矩阵中,对第i列的元素进行累加,可得到第i个顶点的出度。4、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有12个叶子的结点。n=n0+n1+n2+nm (1)又有除根结点外,树中其他结点都有双亲结点,且是唯一的(由树中的分支表示),所以,有双亲的结点数为:n-1=0*n0+1*n1+2*n2+m*nm (2)联立(1)(2)方程组可得:叶子数为:n0
2、=1+0*n1+1*n2+2*n3+.+(m-1)*nm5、有一个长度为20的有序表采用二分查找方法进行查找,共有4个元素的查找长度为3。6、对于双向链表,在两个结点之间插入一个新结点需要修改的指针共4个。 删除一个结点需要修改的指针共2个。7、已知广义表LS=(a,(b,c,d),e),它的深度是2,长度是3。8、循环队列的引入是为了克服假溢出。9、表达式a*(b+c)-d/f的后缀表达式是abc+*df/-。10、数据结构中评价算法的两个重要指标是时间复杂度和空间复杂度。11、设r指向单链表的最后一个结点,要在最后一个结点之后插入s所指的结点,需执行的三条语句是r-next=s; r=s;
3、 r-next=null;12、设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是23,而栈顶指针值是1012_H。设栈为顺序栈,每个元素占4个字节。13、模式串P=abaabcac的next函数值序列为01122312。14、任意连通图的连通分量只有一个,即是自身。15、栈的特性是先进后出。16、串的长度是包含的元素个数。17、如果一个有向图中没有回路,则该图的全部顶点可能排成一个拓扑序列。18、在具有n个叶子结点的哈夫曼树中,分支结点总数为n-1。17619、在线性表的散列存
4、储中,装填因子?又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则?等于n/m。20、排序的主要目的是为了以后对已排序的数据元素进行 查找。21、对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为O(1),在给定值为x的结点后插入一个新结点的时间复杂度为O(n)。22、线性表L=(a1,a2,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是 n/2。23、两个栈共享空间时栈满的条件top1=top2-1。24、深度为H 的完全二叉树至少有H个结点;至多有2H-1个结点;H和结点总数N之间的关系是 H=log
5、2n+1 。15025、在有序表A120中,按二分查找方法进行查找,查找长度为4的元素的下标从小到大依次是1 3 6 8 11 13 16 1926、设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较7次就可以断定数据元素X是否在查找表中。26、数据结构被形式地定义为(D,R),其中D和R 的含义是(D是数据元素的集合,R是数据关系的集合)。数据的逻辑结构包括哪四种类型(集合类型,线性结构,树形结构,图状结构)。从存储结构的概念上讲,顺序表是线性表的(顺序存储结构),链表是(链式存储结构)。27、根据初始关键字序列(17,25,3,39,12)建立的二叉排序树的高度为
6、3。27、算法的五个重要特性有哪些。(有穷性、确定性、可行性、输入、输出)。抽象数据类型是指一个(数学模型)以及定义在该模型上的(一组操作)。28、设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包括对角上元素)存放在n(n+1)个连续的存储单元中,则Aij与A00之间有(i)个数据元素。29、 栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为FILO;队列的插入和删除运算分别在队列的两端进行,先进队列的元素必定先出队列,所以又把队列称为FIFO表。30、 设一棵完全二叉树的顺序存储结构中存储数据元素为ABCDEF,则该二叉树的前序遍历序列为ABDEF
7、,中序遍历序列为DBEAFC,后序遍历序列为DEBFCA。31、 如果以链栈为存储结构,则出栈操作时(必须判别栈是否空),与顺序栈相比,链栈有一个明显的优势是(通常不会出现栈满的情况)。32、 循环队列采用数组data1n来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定:队中能够存放的元素个数最大为n-l,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下标是(front) ;入队时,可用语句(rear=rear+1%n)求出新元素在数组data中的下标。33、 设一棵完全二叉树有128个结点,则该完全二叉树的深度为8,有65个叶子结点。
8、33、已知栈的输入序列为1,2,3,n,输出序列为a1,a2,an,a2=n的输出序列共有(n-1)种输出序列。34、 设有向图G的存储结构用邻接矩阵A来表示,则A中第i行中所有非零元素个数之和等于顶点i的出度,第i列中所有非零元素个数之和等于顶点i的入度。35、将下三角矩阵Al.8,1.8的下三角部分逐行地存储到起始地址为1000的内存单元中,已知每个元素占4个单元,则A7,5的地址为 (1100)。36、已知数组A1.10,1.10为对称矩阵,其中每个元素占5个单元。现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A5,6对应的地址为(1095)。37、两个串
9、相等的充要条件是,两个串的(长度)相等,且其所对应各个位置的(字符)也相等。39、在有n个结点的二叉链表中,值为非空的链域的个数为(n-1)。在有n个叶子结点的哈夫曼树中,总结点数是(2n-1)。在树形结构中,根结点数只有(1),其余每个结点有且仅有一个(前驱)元素结点。40、一棵二叉树L的高度为h,所有结点的度或为0,或为2,则这棵二叉树最少的结点数为(2h-1)。已知二叉树有50个叶子结点,则该二叉树的总结点数至少是(99)。将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为(98)。有64个结点的完全二叉
10、树的深度为( 7)。41、拓扑排序只能用于(有向无环图)。连通图是指图中任意两个顶点之间(都连通的无向图)。一个有n个顶点的无向连通图,它所包含的连通分量个数最多为(1)个。任何一个无向连通图的最小生成树(有一棵或多棵)。若含有n个顶点的图形成一个环,则它有(n)棵生成树。42、求图的最小生成树有两种算法,(普利姆)算法适合于求稠密图的最小生成树,(克鲁斯卡尔)算法适合于求稀疏图的最小生成树。设图G用邻接表存储,则拓扑排序的时间复杂度为(O(n+e)。44、从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为(插入排序)。对于关键字序
11、列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,则开始结点的键值必须为(60)。33、typedef struct nodeint key; struct node *lchild; struct node *rchild;bitree;bitree *bstsearch(bitree *t, int k) if (t=0 ) return(0);else while (t!=0)if (t-key=k)t-lchild=t-rchild=0; else if (t-keyk) t=t-lchild; elset=t-lchild;34、 下面程序段的功能是实现
12、冒泡排序算法,请在下划线处填上正确的语句。void bubble(int rn)272for(i=1;i=n-1; i+)for(exchange=0,j=0; jrj+1)temp=rj+1;_ rj=rj+1_;rj=temp;exchange=1;if (exchange=0) return;35、 下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句。struct recordint key; int others;int bisearch(struct record r , int k) int low=0,mid,high=n-1; while(low=high) mid
13、=(low+high)/2; if(rmid.key=k) return(mid+1); else if(rmid.keyk) high=mid-1;else low=mid+1; return(0);36、设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有129个结点数。15137、设有向图G的二元组形式表示为G =(D,R),D=1,2,3,4,5,R=r,r=,则给出该图的一种拓扑排序序列13245。38、设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4为增量的一趟希尔排序结束后的结果为49 13 27 50 76 38
14、65 97。39、设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较h次.二、选择题1、从逻辑上可以把数据结构分为( C )两大类。A动态结构、静态结构 B顺序结构、链式结构 C线性结构、非线性结构 D初等结构、构造型结构2、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( C )(1=inext=p-next; p-next=s; Bp-next=s; s-next=p-next;Cp-next=s-next; s-next=p; Ds-next=p; p-next=s-next;21、链表不具有的特点是( )。A插入、删除不需要移动元素 B
15、可随机访问任一元素 C不必事先估计存储空间 D所需空间与线性长度成正比22、一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B )。 A. 2 3 4 1 5 B. 5 4 1 3 2 C. 2 3 1 4 5 D. 1 5 4 3 223、递归过程或函数调用时,处理参数及返回地址,要用一种称为( )的数据结构。A队列 B多维数组 C栈 D. 线性表24、设给定权值总数有n 个,其哈夫曼树的结点总数为( ) 。A不确定 B2n C2n+1 D2n-125、若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是( )。课件 A.
16、快速排序 B. 堆排序 C. 归并排序 D. 直接插入排序26、设有一个二维数组Amn,假设A00存放位置在644(10),A22存放位置在676(10),每个元素占一个空间,问A33(10)存放在什么位置?脚注(10)表示用10进制表示。() A688 B678 C692 D69627、若有18个元素的有序表存放在一维数组A19中,第一个元素放A1中,现进行二分查找,则查找A3的比较序列的下标依次为( D )A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,328、设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为(C
17、 )。 (A) 2,3,5,8,6 (B) 3,2,5,8,6 (C) 3,2,5,6,8 (D) 2,3,6,5,829、设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(A )。 A q=p-next;p-data=q-data;p-next=q-next;free(q);B q=p-next;q-data=p-data;p-next=q-next;free(q); C q=p-next;p-next=q-next;free(q); D q=p-next;p-data=q-data;free(q);30、设某二叉树中度数为0的结点数为N0,度数为1的结点数为
18、Nl,度数为2的结点数为N2,则下列等式成立的是(C )。 A N0=N1+1 B. N0=Nl+N2 C. N0=N2+1 D. N0=2N1+l31、设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为m的结点数为Nm,则N0=(B)。 A. Nl+N2+Nm B. l+N2+2N3+3N4+(m-1)NmC. N2+2N3+3N4+(m-1)Nm D. 2Nl+3N2+(m+1)Nm32、设无向图G中的边的集合E=(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c),则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为( A )。A. ae
19、dfcb B. acfebd C. aebcfd D. aedfbc26、某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是( BB )。A. 空或只有一个结点 B.高度等于其结点数 C. 任一结点无左孩子 D.任一结点无右孩子28、下面的说法中正确的是( B )。 (1)任何一棵二叉树的叶子节点在三种遍历中的相对次序不变。 (2)按二叉树定义,具有三个节点的二叉树共有6种。A(1),(2) B(1) C(2) D(1),(2)都错29、树有先根遍历和后根遍历,树可以转化为对应的二叉树。下面的说法正确的是( B )。 A树的后根遍历与其对应的二叉树的后根遍历相同 B树的后根遍历与其对
20、应的二叉树的中根遍历相同C树的先根遍历与其对应的二叉树的中根遍历相同 D以上都不对30、.下图的邻接表中,从顶点V1 出发采用深度优先搜索法遍历该图,则可能的顶点序列是 ( D )。A. V1V2V3V4V5 B. V1V2V3V5V4 C. V1V4V3V5V2 D.V1V3V4V5V2 31、以下说法不正确的是( D )。 A无向图中的极大连通子图称为连通分量 B连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点 C图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点 D有向图的遍历不可采用广度优先搜索32、设哈希表长为14,哈希函数H(key)=key11,表中已有数据的关键字为15
21、,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是( DD )。 A8 B3 C5 D934、二维数组A的每个元素是由6个字符组成的串,其行下标i=0,l,8,列下标为j=1,210。设每个字符占一个字节,若按行先存储,元素A8,5的起始地址与A按列存储时起始地址相同的元素是( B )。 AA8,5 BA3,10 CA5,8 DA0,935、.在n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为( B )。 A. O(n) B. O(log2n) C. O(nlog2n) D. O(n2)37、关键路径是事件结点网络中(
22、 AA )。 A从源点到汇点的最长路径 B从源点到汇点的最短路径 C最长的回路 D最短的回路38、将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是( AA )。 An B2n-1 C2n Dn-141、有向图G用邻接矩阵A存储,则顶点i的入度等于A中( BB )。A. 第i行1的元素之和 B. 第i列1的元素之和C. 第i行0的元素个数 D. 第i列0的元素个数42、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68
23、,84 15,20,21,25,27,35,47,68,84 则所采用的排序方法是(DD )A选择排序 B希尔排序 C归并排序 D快速排序43、设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(AA )。(A) 10,15,14,18,20,36,40,21 (B) 10,15,14,18,20,40,36,21 (C) 10,15,14,20,18,40,36,2l (D) 15,10,14,18,20,36,40,2144、设有n个关键字具有相同的Hash函数值,则用线性探测法把这n个关键字映射到HASH表中需要
24、做( D)次线性探测。 A. n2 B. n(n+1) C. n(n+1)/2 D. n(n-1)/2三、判断题1如果两个串含有相同的字符,则这两个串相等。(x )2数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。( x)3二叉树是度为2的树。(x )4在顺序表中取出第i个元素所花费的时间与i成正比。(x )5在栈满情况下不能作进栈运算,否则产生“上溢”。( v )6图G的生成树是该图的一个极小连通子图。(v )7所谓数据的逻辑结构指的是数据之间的逻辑关系。( x )数据项8二叉排序树的查找和折半查找的时间性能相同。(x)9在执行某个排序算法过程中,出现了排序码朝着最终排序序
25、列位置相反方向移动,则该算法是不稳定的。(x )10一个有向图的邻接表和逆邻接表中表结点的个数一定相等。( v)11、双向链表中至多只有一个结点的后继指针为空。( v )12、在循环队列中,front指向队列中第一个元素的前一位置,rear指向实际的队尾元素,队列为满的条件是front=rear。( x )13、对链表进行插入和删除操作时,不必移动结点。( v )14、栈可以作为实现程序设计语言过程调用时的一种数据结构。( v )15、在一个有向图的拓朴序列中,若顶点a在顶点b之前,则图中必有一条弧 ( x ) 。16、对有向图G,如果从任一顶点出发进行一次深度优先或广度优先搜索就能访问每个顶点,则该图一定是完全图。( x )17、“顺序查找法”是指在顺序表上进行查找的方法。( x )18、向二叉排序树插入一个新结点时,新结点一定成为二叉排序树的一个叶子结点。( v )19、二分查找要求序
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1