数据结构期末总复习题.docx
《数据结构期末总复习题.docx》由会员分享,可在线阅读,更多相关《数据结构期末总复习题.docx(6页珍藏版)》请在冰豆网上搜索。
数据结构期末总复习题
数据结构期末总复习题
1套题1 一、选择题1以下叙述中正确的是_____。
A数组是数据的最小单位 B数据对象就是一组数据元素的集合C顺序存储方式只能用于存储线形结构 D树对应到的二叉树其根结点的右子树总是空的 2一个数组的第一个元素的存储地址是100,每个元素长度为2,则第5个元素的存储地址是_____。
A110 B108 C100 D1203一个栈的入栈顺序是a,b,c,d,e,则其出栈顺序不可能是_____。
Aa,b,c,d,e Be,d,c,b,aCd,c,e,a,b Dd,e,c,b,a4栈的特点是_____。
A先进先出 B先进后出 C随即存取 D链式实现5一个队列的入队顺序是1,2,3,4,5,那么出队顺序是_____。
A5,4,3,2,1 B1,2,3,5,4C1,2,3,4,5 D1,3,2,4,5 6向一个长度为10的数组的第5个元素之前插入一个元素时,需向后移动_____个元素。
A3B5C6 D7 7若一棵二叉树有101个结点,且无度为1的结点,则叶结点的个数为_____。
A48 B49 C50 D518高度为6的完全二叉树中第4层结点的个数为_____。
A2 B4 C8 D169具有n个顶点的无向完全图,其边数为_____。
An Bn(n-1) Cn(n-1)/2Dn10具有n个顶点的有向完全图,其边数为_____。
An Bn(n-1) Cn(n-1)/2Dn11在有7个顶点的无向图中至少有_____条边才能确保该图连通。
A1 B6 C7 D21 12对于一个有n个顶点的无向图,若采用邻接矩阵表示法,则该矩阵的大小是_____。
An-1 Bn C(n-1) Dn 13在序列1,10,12,15,23,40,66,77,85中利用直接查找,查找15所需的比较次数为_____。
A2 B3 C4 D6 14采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为_____。
AO(n) BO(nlogn) CO(n) DO(logn)15在待排序元素基本有序的前提下,效率最高的排序方法是_____。
A插入排序 B选择排序 C快速排序 D归并排序 二、填空题 1判定下列程序段的时间复杂度为_________________,其中语句A[i][j]频度为___________________for(i=0;i for(j=0;j 22 222 2 A[i][j]=0; B[j][i]=1;} 2对线性表进行二分查找时,要求线性表必须_______________且______________。
3对于一个头指针为head的带头结点的单链表,判定该链表为空的条件是__________________,对于一个不带头指针的单链表,判定该链表为空的条件是__________________。
4在循环单链表中,头指针用head表示,队尾结点用p指向,那么p→next等于__________________。
5在选择数据结构的存储结构时,为了方便地定位和读取某特定元素,数据结构宜采用__________形式,为了方便地进行数据元素的插入删除操作,数据结构宜采用__________形式。
6深度为5的二叉树,最多有___________个结点,最少有___________个结点。
7若深度为5的二叉树中仅有度为0的结点和度为2的结点,那么这棵二叉树最多有___________个结点,最少有___________个结点。
8在线索二叉树中,若以ltag表示某结点的左标志域,以lch表示某结点的左孩子域,则结点t没有左子树的条件是。
9在含有个8结点的二叉链表中有_______个空链域。
10有_______个结点的二叉树将会呈现5种不同的表现形式。
11在无向图的邻接矩阵中,若A[i][j]=1,A[j][i]=_______________。
12如下图所示的有向图,顶点D的入度为,出度为,顶点D的度为。
ABCDEF 三、操作题1已知一棵二叉树如下图所示:
AB ①写出该二叉树的先根遍历序列(2分)②写出该二叉树的中根遍历序列(2分) ③判断正误:
这棵二叉树的先根、中根、后根遍历序列中,叶子结点的相对次序保持不变,其实,任意一棵二叉树,其叶子结点在先根、中根、后根遍历序列中的相对次序都保持不变。
CDEF2下面的程序段是一个在单链表表示的有序序列a,b,d,e中插入新值c并保持有序的算法,已知插入位置的前驱用p指向,请将程序段补充完整。
(6分) p 3 StatusListInsert_L(LinkList&L,charc){ s=(LinkList)malloc(sizeof(LNode));;s→next=;p→next=;returnOK;}//ListInsert_L 3下图为一个无向图G,请给出该图从A出发的两个可能的广度优先遍历序列 ①(2分)②(2分) ③画出该图的邻接矩阵表示 四、算法设计题 设有两个栈S1,S2都采用顺序栈方式,并且共享一个存储区[O..maxsize-1],为了尽量利用空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方式。
试设计S1,S2有关入栈和出栈的操作算法。
套题2 一、选择题 1一个数组的第一个元素的存储地址是1000,每个元素长度为4,则第4个元素的存储地址是_____。
A1004 B1008 C1012 D10162一个栈的入栈顺序是a,b,c,d,e,则其出栈顺序不可能是_____。
Aa,b,c,d,e Be,d,c,b,aCd,c,e,a,b Dd,e,c,b,a 3从一个具有n个结点的单链表中查找值等于x的结点,在查找成功的前提下,其平均比较次数为_____。
An Bn/2 C(n-1)/2 D(n+1)/2 4在序列1,10,12,15,23,40,66,77,85中利用直接查找,查找15所需的比较次数为_____。
A2 B3 C4 D65下列排序算法中不稳定的是_____。
headabde ∧ABDFCE4 A堆排序 B折半插入排序C直接插入排序 D链式基数排序 6向一个长度为100的数组的第45个元素之前插入一个元素时,需向后移动_____个元素。
A45B46C55 D56 7若一棵二叉树有101个结点,且无度为1的结点,则叶结点的个数为_____。
A48 B49 C50 D518具有n个顶点的无向完全图,其边数为_____。
An Bn(n-1) Cn(n-1)/2Dn9下列关于图的描述,错误的是_____。
A无向图中所有顶点的度数之和为边数之和的2倍B有向图中所有顶点的度数之和为边数之和的2倍C有向图中所有顶点的入度之和等于出度之和D具有n个顶点,n-1条边的无向图是连通图10有关二叉树下列说法正确的是_____。
A二叉树是度为2的树B一棵二叉树的度可以小于2C二叉树中至少有一个结点的度为2D二叉树中所有结点的度都为2 二、填空题 1判定下列程序段的时间复杂度为___________________,其语句频度为___________________for(i=0;i for(j=0;j 2在一个单链表中的p所指的结点之前插入一个s所指的结点的操作可以描述为:
s->next=____________________; p->next=s;t=p->data; p->data=____________________;s->data=____________________; 3在插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,平均比较次数最少的 排序是____________________,需要内存容量最多的排序是____________________。
4对线性表进行二分查找时,要求线性表必须___________________________。
5对于一个头指针为head的带头结点的单链表,判定该链表为空的条件是__________________,对于一个不带头指针的单链表,判定该链表为空的条件是__________________。
6数据的存储结构是指,设有一批数据元素,为了方便地定位和读取某特定元素,数据结构宜采用__________形式,为了方便地进行数据元素的插入删除操作,数据结构宜采用__________形式。
7已知一棵二叉树,其先序序列为ABCDE,中序序列为CDBEA,则其后序序列为_。
8高度为6的二叉树,其结点个数最多为_____个,最少为_____个。
9在线索二叉树中,若以ltag表示某结点的左标志域,以lch表示某结点的左孩子域,则结点t没有左子树的条件是。
2 5 10在含有个20结点的二叉链表中有_______个空链域。
11有_______个结点的二叉树将会呈现5种不同的表现形式。
12如下图所示的AOE-网,其关键路径为。
3A3B12C5D32E2F 三、算法题 1、关键字序列a,b,c,d的链式存储如下,编写算法,通过更改指针实现关键字序列a,d,c,b的链式存储。
2、设计算法,现有一字符串“12468”,若该字符串表示的是数值型的八进制数值,即8,设计算法将它转换为十进制数并输出。
四、操作题 1、已知一棵树如下图所示,要求:
①给出树的先根遍历序列和后根遍历序列②将该树转化为二叉树 2、设有一组关键字为{8,7,13,10,9,23,15},哈希函数为H(key)=keyMOD7,按开放定址的线性探测再散列解决冲突,即增量序列为1,2,3,?
,构造表地址空间为0--9的哈希表。
headabcd ∧ABCDEFGHIJK
11 方式最节省时间。
A)顺序表 B)双链表 C)带头结点的双循环链表D)单循环链表 10、若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为()。
A)(n-1)/2 B)n/2C)(n+1)/2 D)n 二、填空题 1、数据的物理结构包括的表示和的表示。
2、给定一组数据{6,2,7,10,3,12}以它构造一棵哈夫曼树,则树深度为__________,带权路径长度WPL的值为__________。
3、在单链表p结点之后删除s结点的操作是:
______。
4、设有一批数据元素,为了最快地存取某元素,数据结构宜采用__________结构,为了方便地插入一个数据元素,数据结构宜采用__________结构。
5、在拓扑排序中,拓扑序列的第一个顶点必须是________的顶点。
6、对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是_____。
7、二叉树的第i层上最多含有结点数为 。
8、具有N个结点的二叉树,采用二叉链表存储,共有______个空链域。
9、一个有n个结点的图,最少有个连通分量,最多有个连通分量。
10、对于具有N个结点的完全二叉树,其深度为。
11、在长度为n的顺序表的第i个位置上插入一个元素,元素的移动次数为。
三、算法题1、请写一算法,求带有头结点的单向循环链表的表长。
2、请用非递归算法写出在二叉树中计算叶子结点个数的算法。
3、请写出简单选择排序的算法。
12 四、操作题 1、已知一组关键字为,则按哈希函数H(key)=keymod13和链地址法处理冲突构造哈希表。
2、请写出在如下具有11个数据元素的有序表中使用折半查找算法查找21的过程。
3、对于下面的有向图G,请写出所有可能的拓扑序列。
4、写出对数据进行快速排序中第一趟的序列。
5、无向图G=(V,E),其中:
V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},写出对该图进行广度优先遍历的序列。
6、已知一棵二叉树前序为ABDEGCF,中序为DBGEACF,画出这棵二叉树。
套题5 一、选择题1.以下那一个术语与数据的存储结构无关?
A.栈B.哈希表C.线索树D.双向链表 2.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是A.head==NULLB.head→next==headC.head→next==NULLD.head!
=NULL3.对于栈操作数据的原则是。
A.先进先出B.后进先出 C.后进后出 D.不分顺序 BACED13 4.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是A.9 B.11 C.15 D.不确定 5.树的后根遍历序列等同于该树对应的二叉树的().A.先序序列B.中序序列C.后序序列D.不一定6.n个结点的完全有向图含有边的数目。
A.n*n B.nC.n/2D.n*7.下列哪一种图的邻接矩阵是对称矩阵?
A.有向图 B.无向图C.AOV网D.AOE网 8.下面关于哈希(Hash,杂凑)查找的说法正确的是()A.哈希函数构造的越复杂越好,因为这样随机性好,冲突小B.除留余数法是所有哈希函数中最好的C.不存在特别好与坏的哈希函数,要视情况而定 D.若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可9.下列排序算法中,其中是稳定的。
A.堆排序,冒泡排序B.快速排序,堆排序 C.直接选择排序,归并排序D.归并排序,冒泡排序 10堆是一种有用的数据结构。
试判断下面的关键码序列中哪一个是堆( )A.16,72,31,23,94,53 B.94,53,31,72,16,23C.16,53,23,94,31,72 D.16,31,23,94,53,72 二、填空题 1.在下面的程序段中,语句x+=1的频度是___________________,语句A[i][j]=1的频度是________________,整个程序的时间复杂度是___________________。
for(i=0;i 2.在单链表指针为p的结点之后插入指针为s的结点,操作是__________________, 14 _______________________。
3.从逻辑上可以把数据结构分为_____和两大类。
4.一个队列的输入顺序是a,b,c,d,e,则其输出序列为________________________。
5.一个具有N个顶点,K条边的无向图是一个森林,则该森林必有_____棵树。
6.构造连通网最小生成树的两个典型算法是__________________和________________________。
7.设G是一个非连通无向图,共有28条边,则该图至少有______个顶点。
8.若(u,v)是E(G)中的一条边,则称u与v互为__________。
9.一棵具有20个结点的完全二叉树的树高度是。
10.具有10个叶结点的二叉树中有个度为2的结点。
11.有3个结点的二叉树将会呈现种不同的表现形式。
12.N个顶点的连通图的生成树含有______条边。
13.具有N个结点的二叉树,采用二叉链表存储,共有个空链域。
14.二叉树中某一结点左子树的深度减去右子树的深度称为该结点的。
15.有一个长度为12的有序表,按二分查找法对该表进行查找,且查找每个元素的概率相同,则查找成功所需的平均查找长度为。
三、算法题 1关键字序列a,b,c,d的链式存储如下,编写算法删除d所在的结点,是删除之后的新序列为{a,b,e}。
其中结点定义为:
structnode{chardata;structnode*next;}; 2、①请写出快速排序的算法。
②对{503,87,512,61,908,170,897,275,653,462},以第一个记录为枢轴,写出按升序进行一趟快速排序的结果。
headabcd ∧15 得分阅卷人四、操作题 1、已知某栈结构定义如下,现有一字符序列以{a,b,c,d}的顺序进栈,试完成下面的操作,使最终的输出序列为{a,c,b,d}structstack{intbase; inttop; stactsizeN;/*N>4*/}; main{Init(stack);Push(a);;;; Pop;/*栈顶元素c出栈*/;Push(d);Pop; }/*endofmain*/ 2、假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。
①请画出该二叉树。
(4分) ②将此二叉树转化成其对应的森林。
3、无向图G=(V,E),其中:
V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)}①请画出该图,并给出该图的邻接矩阵表示(4分) ②依据你所作的邻接矩阵,从A出发,给出该图的深度优先遍历序列 topbase
16 4、将关键码DEC,FEB,NOV,OCT,JUL,SEP,AUG,APR,MAR,MAY,JUN,JAN依次插入到一棵初始为空的AVL树中,画出每插入一个关键码后的AVL树。
套题6 一、选择题 1、对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为()。
A、/2 B、N/2 C、N D、[*N]/2 2、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(1 A、O(0) B、O
(1) C、O(n) D、O(n2)3、循环队列存储在数组A[0..m]中,则入队时的操作为。
A、rear=rear+1 B、rear=(rear+1)mod(m-1)C、rear=(rear+1)modm D、rear=(rear+1)mod(m+1)4、从逻辑上可以把数据结构分为两大类。
A、动态结构、静态结构C、线性结构、非线性结构 B、顺序结构、链式结构D、初等结构、构造型结构 5、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是A、9 B、11 C、15 D、不确定6、以下说法正确的是。
A、数据元素是数据的最小单位 B、数据项是数据的最大单位 D、数据结构是带有结构的数据元素的集合 C、数据结构是带有结构的各数据项的集合 7、具有12个关键字的有序表,折半查找的平均查找长度。
A、 B、4 C、 D、58、设无向图的顶点个数为n,则该图最多有条边。
A、n-1 B、n(n-1)/2 C、n(n+1)/2 D、0 9、有关二叉树下列说法正确的是A、二叉树的度为2 B、一棵二叉树的度可以小于2C、二叉树中至少有一个结点的度为2D、二叉树中任何一个结点的度都为2 10、下面给出的四种排序法中()排序法是不稳定性排序法。
A、插入 B、冒泡 C、二路归并 D、堆 17 二、判断题 1、当待排序记录已经从小到大排序或者已经从大到小排序时,快速排序的执行时间最省。
2、完全二叉树一定存在度为1的结点。
3、栈和队列都是线性表,只是在插入和删除时受到了一些限制。
4、数据的逻辑结构是指数据的各数据项之间的逻辑关系。
5、二叉树是一般树的特殊情形。
( ) 6、用向量和单链表表示的有序表均可使用折半查找方法来提高查找速度。
7、线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。
() 8、链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。
9、若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列3,2,5,6,4,1。
10、对于有n个结点的二叉树,其高度为log2n。
() 三、填空题 1、设Q[0..N-1]为循环队列,其头、尾指针分别为P和R,则队Q中当前所含元素个数为_______。
2、在单链表L中,指针p所指结点有后继结点的条件是:
__ 。
3、对于一个具有n个结点的单链表,在已知的结点p后插入一个新结点的时间复杂度为________,在给定值为x的结点后插入一个新结点的时间复杂度为________。
4、在单链表p结点之后插入s结点的操作是:
___ ___、。
5、二叉树的第i层上最多含有结点数为 。
6、在一个无向图中,所有顶点的度数之和等于所有边数倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的倍。
7、具有N个结点的二叉树,采用二叉链表存储,共有______个空链域。
四、程序填空题和算法设计题 1、以下程序的功能是在一个带有头结点的单链表L中,删除第i个元素,并e返回其值的算法,请在画线部分填上代码。
StatusListDelete_L(LinkList&L,inti,ElemType&e) //在带头结点的单链表L中,删除第i个元素,并e返回其值{p=L; j=0; while(p->next&&j ; 18 ++j;} ;p->next=q->next;e=q->data;free(q);returnOK;} 2、以下程序的功能是在一有序表ST中折半查找其关键字等于key的数据元素。
若找到,则函数值为该元素中的位置,否则为0,请在画线部分填上代码。
intSearch_Bin(SSTableST,KeyTypekey) {/*在有序表ST中折半查找其关键字等于key的数据元素。
若找到,则函数值为*/ /*该元素在表中的位置,否则为0。
*/ intlow,high,mid; low=1;/*置区间初值*/ high=; while(low
(1) ; ifEQ(key,[mid].key)/*找到待查元素*/ returnmid; elseifLT(key,[mid].key)
(2) ;/*继续在前半区间进行查找*/ else low=mid+1;/*继续在后半区间进行查找*/ } return0;/*顺序表中