您好,欢迎来到汇智旅游网。
搜索
您的当前位置:首页数据结构课后习题及答案

数据结构课后习题及答案

来源:汇智旅游网
数据结构课后习题及答案

填空题(10 * 1’ = 10’)⼀、概念题

2.2.当对⼀个线性表经常进⾏的是插⼊和删除操作时,采⽤链式存储结构为宜。

2.3.当对⼀个线性表经常进⾏的是存取操作,⽽很少进⾏插⼊和删除操作时,最好采⽤顺序存储结构。2.6.带头结点的单链表L中只有⼀个元素结点的条件是L->Next->Next==Null。3.6.循环队列的引⼊,⽬的是为了克服假溢出。4.2.长度为0的字符串称为空串。4.5.组成串的数据元素只能是字符。

4.8.设T和P是两个给定的串,在T中寻找等于P的⼦串的过程称为模式匹配,⼜称P为模式。

7.2.为了实现图的⼴度优先搜索,除⼀个标志数组标志已访问的图的结点外,还需要队列存放被访问的结点实现遍历。5.7.⼴义表的深度是⼴义表中括号的重数7.8.有向图G可拓扑排序的判别条件是有⽆回路。

7.9.若要求⼀个稠密图的最⼩⽣成树,最好⽤Prim算法求解。8.8.直接定址法法构造的哈希函数肯定不会发⽣冲突。

9.2.排序算法所花费的时间,通常⽤在数据的⽐较和交换两⼤操作。

1.1.通常从正确性﹑可读性﹑健壮性﹑时空效率等⼏个⽅⾯评价算法的(包括程序)的质量。1.2.对于给定的n元素,可以构造出的逻辑结构有集合关系﹑线性关系树形关系﹑图状关系四种。1.3.存储结构主要有顺序存储﹑链式存储﹑索引存储﹑散列存储四种。

1.4.抽象数据类型的定义仅取决于它的⼀组逻辑特性,⽽与存储结构⽆关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使⽤。

1.5.⼀个算法具有五⼤特性:有穷性﹑确定性﹑可⾏性,有零个或多个输⼊﹑有⼀个或多个输⼊。2.8.在双向链表结构中,若要求在p指针所指的结点之前插⼊指针为s所指的结点,则需执⾏下列语句:s->prior= p->prior; s->next= p; p->prior- next= s; p->prior= s;。

2.9.在单链表中设置头结点的作⽤是不管单链表是否为空表,头结点的指针均不空,并使得对单链表的操作(如插⼊和删除)在各种情况下统⼀。

3.1.队列是在表的⼀端进⾏插⼊和在另⼀端进⾏删除的线性表,其运算遵循先进先出原则。3.2.栈是限定尽在表位进⾏插⼊或删除操作的线性表。

3.5.在链式队列中,判定只有⼀个结点的条件是(Q->rear==Q->front)&&(Q->rear!=NULL)。

3.7.已知链队列的头尾指针分别是f和r,则将x⼊队的操作序列是node *p=(node *)malloc(node); p->next=x; p->next=NULL; if(r){r->next=p; r=p;} else {r=p; f=p;}。

3.8.循环队列的满与空的条件是(rear+1)%MAXSIZE==fornt和(front=-1&&rear+1==MAXSIZE)。4.3.串是⼀种特殊的线性表,其特殊性表现在数据元素都是由字符组成。

4.7.字符串存储密度是串值所占存储位和实际分配位的⽐值,在字符串的链式存储结构中其结点⼤⼩是可变的。5.3.所谓稀疏矩阵指的是矩阵中⾮零元素远远⼩于元素总数,则称该矩阵为矩阵中⾮零元素远远⼩于元素总数,

则称该矩阵为稀疏矩阵。

5.4.⼀维数组的逻辑结构是线性结构,存储结构是顺序存储结构;对⼆维或数组,分别按⾏优先和列优先两种不同的存储⽅式。

7.4.在有向图的邻接矩阵表⽰中,计算第i个顶点⼊度的⽅法是求邻接矩阵中第i列⾮0元素的个数。7.10.AOV⽹中,结点表⽰活动,边表⽰活动之间的优先关系,AOE⽹中,结点表⽰事件,边表⽰活动。

9.1.按排序过程中依据不同原则对内部排序⽅法进⾏分类,主要有选择排序﹑交换排序﹑插⼊排序归并排序等4类。9.3.在堆排序、快速排序和归并排序中若只从排序结果的稳定性考虑,则应选择归并排序⽅法;若只从平均情况下排序最快考虑,则应选择快速排序⽅法;若只从最坏情况下排序最快且要节省类存考虑,则应选择堆排序⽅法。9.4.直接插⼊排序⽤监视哨的作⽤是存当前要的插⼊记录,可⼜省去查找插⼊位置时对是否出界的判断。9.6.设表中元素的初始状态是按键值递增的,则直接插⼊排序最省时间,快速排序最费时间。

4.9.下列程序判断字符串s是否对称,对称则返回1,否则返回0;如?(“abba”)返回1,?(”abab”)返回0.Int f (char*s){

Int i=0,j=0;

/*求串长*/for(j--;ireturn( i>=j );}

⼆、结论题 2.7.在具有n 个结点有序单链表中插⼊⼀个新结点并仍然有序的时间复杂度为O(n)。

2.10.对于⼀个具有n 个结点的单链表,在已知的结点*p 后插⼊⼀个新结点的时间复杂度为O(1),在给定值为x 的结点后插⼊⼀个新结点的时间复杂度为O(n)。

4.1.设正⽂产长度为n ,模式串长度为m ,则简单模式匹配算法的时间复杂度为 O(m*n) 。

9.5.对n 个记录进⾏快速排序时,递归调⽤⽽是⽤的栈所能达到的最⼤深度为O(n),平均深度为O(log 2n) 。

7.1.克鲁斯卡尔算法的时间复杂度为O(eloge),它对稀疏图较为合适。 6.3.在⼀棵⼆叉树中,度为0的结点的个数为N 0,度为2的结点个数为N 2,则有N 0= N 2+1。

6.8 深度为k 的完全⼆叉树⾄少有2k-1个结点,⾄多有2k-1 个结点。

7.3.具有n 个结点e 条边的有向图和⽆向图⽤邻接表表⽰,则邻接表的边结点个数分别为e 和2e 条。7.5.若n 个顶点的连通图是⼀个环,则它有n 棵⽣成树。

7.6.n 个顶点的连通图⽤连接矩阵表⽰时,该矩阵⾄少有2(n-1)个⾮零元素。7.7.有n 个顶点的有向图,⾄少需要n 条弧才能保证是连通的。

9.7.归并排序除了在递归是现实所⽤的log 2n 个栈空间外,还⽤n 个辅助空间。

2.1.对于采⽤顺序存储结构的线性表,当随机插⼊⼀个数据元素时,平均移动表中n/2元素;删除⼀个数据元素时, 平均移动表中(n-1)/2元素。

2.4.在⼀个长度为n 的顺序存储结构的线性表中,向第i 个元素(1≤i ≤n+1)之前插⼊⼀个新元素时,需向后边移动 n-i+1个元素。

2.5.从长度为n 的采⽤顺序存储结构的线性表中删除第i 个元素(1≤i ≤n ),需向前移动n-1个元素。

3.4.当两个栈共享⼀存储区时,存储区⽤⼀维数组stack (1,n )表⽰,两栈顶指针为top 【1】与top 【2】,则当栈1空时。top 【1】为0,栈2空时top 【2】为n+1,栈满的条件是top[1]+1==top[2]。 8.1.顺序查找n 个元素的顺序表,若查找成功,则⽐较关键字的次数最多为n 次;当使⽤监视哨时,若查找失败, 则⽐较关键字的次数为n+1。

6.5.设⼀颗完全⼆叉树叶⼦结点数为k ,最后⼀层结点数为偶数时,则该⼆叉树的⾼度为()2log 2k 1-?+1,最后⼀层结点数为奇数时,则该⼆叉树的⾼度为()2log 2k +1。

9.8.对n 个记录建⽴⼀个堆的⽅法是:⾸先将要排序的所有记录分到⼀棵⼆叉树的各个结点中,然后从i=n /2的结点ki ,逐渐把以kn/2,kn/2-1kn/2-2,……为根的⼦树排成堆,直到以k1根的树排成堆,就完成了初次建堆的过程。 三、计算题4.4.StrIndex(“MY STUDENT ”,”STU ”)=4。

5.5.求下列⼴义表的运算结果:Get T ail{GetHead{{{a,b},{c,d}}}}=(b )。

6.7.已知⼆叉树先序为ABDEGCF,中序为DBGEACF,则后序⼀定是DGEBFCA 。5.8.⼴义表{a,{a,b},d,e,{{i,j},k}}的长度是5,深度是3。

6.9.具有10个叶⼦的哈夫曼树,其最⼤⾼度为9,最⼩⾼度为5。6.1.已知⼆叉树有50个叶⼦结点,则该⼆叉树的总结点数⾄少是99。

6.10.设F 是⼀个森林,B 是由F 转换得到的⼆叉树,F 中有n 个⾮终端节点,则B 中右指针域为空的结点有n+1个。3.10. 表达式23+((12*13-2)/4+34*5/7)+108/9的后缀表达式是23 12 3*2-4/34 5*7/++108 9/+。

3.3. ⽤s 表⽰⼊栈操作。X 表⽰出栈操作,若元素⼊栈的顺序为1,2,3,4,为了得到1,3,4,2出栈顺序,相应的s 和x 的操作串为SXSSXSXX 。

5.6.⼴义表A={{{a,b},{c,d,e}}},取出A 中的原⼦e 的操作是:GetT ail(GetTail(GetTail(GetHead(A))))。

9.10.⼀组记录的键值为{12,38,35,25,74,50,63,90},按⼆路归并排序⽅法对该序列进⾏⼀趟归并后的结果是{12,38,25,35,50,74,63,90}。

3.9. ⼀个栈的输出序列是,1,2,3,4,5,则不同的输出序列有42种4.6.设串S 的长度为4,则S 的⼦串个数最多为10。

6.6.有5种不同形态的⼆叉树可以按中序遍历得到相同的abc 序列。

9.9.若⽤冒泡排序对关键字序列{50,45,35,19,9,3}进⾏从⼩到⼤的排序,所需进⾏的关键字⽐较总次数是15。

5.1.⼆维数组A[6][8]采⽤⾏序为主⽅式存储,每个元素占4个储存单元,已知A 的起始储存地址{基地址}是1000,则A[2][3]的地址是1076。

6.4.叶⼦权值(5,6,17,8,19)所构造的哈夫曼树带权路径长度为121。

8.2.在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,⽤折半法查找关键字20,需要的关键字⽐较次数为4。8.3.对于具有144个记录的⽂件,若采⽤分块查找法,且每块长度为8,则平均查找长度为8.25或14。

5.2.设数组A[9][10],数组中任⼀元素均占内存48个⼆进制位,从⾸地址2000开始连续存放在主内存⾥,主内存字长为16位,那么:

{1}存放该数组⾄少需要的单元数是270。

{2}存放数组的第8列的所有元素⾄少需要的单位数是27。{3}数组按列存储时,元素A[5][8]的起始地址是2231。选择题(15 * 1’ = 15’)⼀、叙述类

1.1.根据数据元素之间关系的不同性,以下解释错误的是()。

A集合中任何两个结点之间都有逻辑关系但组织形式松散B线性结构中结点形成1对1的关系C树形结构具有分⽀、层次特性,其形态有点像⾃然界中的树

D图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接1.2.关于逻辑结构,以下说法错误的是()。

A逻辑结构是独⽴于计算机的B运算的定义与逻辑结构⽆关

C同⼀逻辑结构可以采⽤不同的存储结构D⼀些表⾯上很不相同的数据可以有相同的逻辑结构E逻辑结构是数据组织的某种“本质性”的东西1.3.下⾯关于算法的说法正确的是()。

A算法的时间效率取决于算法所花费的CPU时间B在算法设计中不能⽤牺牲空间代价来换取好的时间效率C算法必须具有有穷性、确定性等5个特性D通常⽤时空效率来衡量算法的优劣1.4.下⾯关于算法说法错误的是()。

A计算机程序⼀定是算法B算法只能⽤计算机⾼级语⾔来描述C算法的可⾏性是指指令不能有⼆义性D以上⼏个都是错误的1.6.以下说法正确的是()。

A数据元素是数据的最⼩单位B数据项是数据的基本单位C原⼦类型不可再分解D数据项只能是原⼦类型2.1.线性表是()

A.⼀个有限序列,可以为空B.⼀个有限序列,不能为空C.⼀个⽆限序列,可以为空D.⼀个⽆限序列,不能为空

2.3.线性表采⽤链式存储时,其各元素存储地址()。A.必须是连续的B.部分地址必须是连续的C.⼀定是不连续的D.连续与否均可以

2.4.⽤链表表⽰线性表的优点是()。A.便于随机存取

B.花费的存储空间较顺序存储少C.便于插⼊和删除

D.数据元素的物理顺序与逻辑顺序相同2.5.()插⼊、删除速度快,但不能随机存取。A.链接表B.顺序表C.顺序有序表D.上述三项⽆法⽐较

2.6.若希望从链表中快速确定⼀个结点的前驱,则链表最好采⽤()⽅式。A.单链表B.循环单链表C.双向链表D.任意

2.7.下⾯关于线性表的叙述错误的是()。

A.线性表采⽤顺序存储,必须占⽤⼀⽚地址连续的单元B.线性表采⽤顺序存储,便于进⾏插⼊和删除操作C.线性表采⽤链式存储,不必占⽤⼀⽚地址连续的单元D.线性表采⽤链式存储,便于进⾏插⼊和删除操作

2.9.若某线性表中最常⽤的操作的操作是在最后⼀个元素之后插⼊⼀个元素和删除第⼀个元素,则采⽤()存储⽅法最节省运算时间。A.单链表

B.仅有头指针的单循环链表C.双链表

D.仅有尾指针的单循环链表3.1.栈和队列的共同点是()。A.都是先进先出B.都是先进后出

C.只允许在端点处插⼊和删除元素D.没有共同点

3.4.递归过程或函数调⽤时,处理参数及返回地址,要⽤⼀种称为()的数据结构。A.队列B.数组C.栈D.线性表

3.6.⽤链式存储的队列,在进⾏删除运算时()。A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改3.7.栈应⽤在()。A.递归调⽤B.⼦程序调⽤C.表达式求值D.A,B,C

4.1.如下陈述中正确的事()A.串是⼀种特殊的线性表B.串的长度必须⼤于零C.串中元素只能是字母D.空串就是空⽩串

4.2.设有两个串p和q,其中q是p的⼦串,求q在p中⾸次出现的位置的算法称为()A.求⼦串B.联接C.匹配D.求串长4.4.串是()

A.不少于⼀个字母的序列B.任意个字母的序列C.串中所含不同字符的个数D.串中所含⾮空格字符的个数4.5.串的长度是指()A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含⾮空格字符的个数5.4.对矩阵压缩储存是为了()

A.⽅便压缩 B.节省空间 C.⽅便存储 D.提⾼运算速度

6.1.如果T2是由树T转换⽽来的⼆叉树,那么对T中结点的后根遍历就是对T2中结点的()遍历。A 先序B中序C后序D层次序

6.4.⼆叉树在线索后,仍不能有效求解的问题是()。A 先序线索⼆叉树中求先序后继B 中序线索⼆叉树求中序后继C 中序线索⼆叉树中求中序前驱D 后序线索⼆叉树中求后序后继

6.8 某⼆叉树的先序遍历序列和后序遍历序列正好相反,则此⼆叉树⼀定是()。A 空或只有⼀个结点

B 完全⼆叉树C单枝树 D ⾼度等于结点数

6.9.在⼆叉树结点的先序序列,中序序列和后序序列中,所有叶⼦结点的先后顺序()。A 都不相同B 完全相同

C 先序和中序相同⽽后序不同D中序和后序相同⽽与先序不同7.5.图的⼴度优先搜索类似于树的()遍历。A.先序B.中序C.后序D.层次

7.8.下⾯()⽅法可以判断出⼀个有向图是否有环(回路)。A.深度优先遍历B.拓扑排序C.求最短路径D.求关键路径

7.9.在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是()。A.G中有弧

B.G中有⼀条从Vi到Vj的路径C. G中没有弧

D.G中有⼀条从Vj到Vi的路径

7.10.下列关于AOE⽹的叙述中,不正确的是()。A.关键活动不按期完成就会影响整个⼯程的完成时间B.任何⼀个关键活动提前完成,那么整个⼯程将会提前完成C.所有的关键活动提前完成,那么整个⼯程将会提前完成D.某些关键活动提前完成,整个⼯程将会提前完成8.3.当采⽤分块查找时,数据的组织⽅式为()A.数据分块若⼲块,每块内数据有序

B.数据分成若⼲块,每块内数据不必有序,但块间必须有序,每块内最⼤(或最⼩)的数据组成索引块C.数据分成若⼲块,每块内数据有序,每块内最⼤(或最⼩)的数据组成索引块D.数据分成若⼲块,没块(除最后⼀块外)中数据个数需相同8.5.下⾯关于折半查找的叙述正确的是()。

A.表必须有序,表可以顺序⽅式存储,也可以链表⽅式存储B.表必须有序且表中数据必须是整型,实型或字符型C.表必须有序,⽽且只能从⼩到⼤排序D.表必须有序,且表只能⼀顺序⽅式存储8.11.下⾯关于哈希查找的说法正确的是()

A.哈希函数构造的越复杂越好,因为这样随机性好、冲突⼩B.除留余数法是所有哈希函数中最好的

C.不存在特别好与坏的哈希函数,要视情况⽽定

D.若需在哈希表中删去⼀个元素,不管⽤何种⽅法解决冲突都只要简单地将该元素删去即可8.12.将10个元素散列到100000个单元的哈希表中,则()产⽣冲突。A.⼀定会B.⼀定不会C.仍可能会

9.1.下列排序算法中,其中()是稳定的。A.堆排序和冒泡排序B.快速排序和堆排序C.简单选择排序和归并排序D.归并排序和冒泡排序

9.3.以下时间复杂度不是O(nlog2n)的排序⽅法是()。A.堆排序B.直接插⼊排序C.⼆路归并排序D.快速排序

9.4.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可以选择的排序⽅法是()。A.快速排序B.堆排序C.直接插⼊排序D.归并排序

9.7.在待排序的元素序列基本有序的前提下,效率最⾼的排序⽅法是()。A.直接插⼊排序 B.快速排序 C.简单选择排序 D.归并排序

9.8.就排序算法所⽤的辅助空间⽽⾔,堆排序、快速排序、归并排序的关系是()。A.堆排序<快速排序<归并排序B.堆排序<归并排序<快速排序C.堆排序>归并排序>快速排序D.堆排序>快速排序>归并排序

9.9.⼀个序列有10 000个元素,若只想得到其中前10个最⼩的元素,最好采⽤()⽅法。A.⼆路归并排序

B.直接选择排序 C .Shell排序 D .堆排序

9.10.设有字符序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{D,H,C,F,P,A,M,Q,R,S,Y,X}是下列()算法⼀趟排序的结果。A.冒泡排序

B.初始步长为4的Shell排序C.⼆路归并排序D. 快速排序

⼆、数字类1.5.程序段for(i=n-1;i>=0;i--)for(j=1;j<=n;j++)if A[j]>A[j+1]A[j]与A[j+1]互换;

其中n为正整数,则最后⼀⾏的语句频度在最坏情况下是()。A.O(n)B.O(n2)C.O(n3)D.O(nlog2n)

2.2.从⼀个具有n个结点的单链表中查找值为x结点,在查找成功情况下,需要平均⽐较()个结点。A.nB.n/2C.(n-1)/2D.(n+1)/2

2.8.带头结点的单链表head为空的判定条件是()。A.head==NULLB.head—>next==NULLC.head—>next==headD.head!=NULL

2.10.在循环双链表的p所指结点之后插⼊s所指结点的操作是()。A.p—>next=s;s—>prior=p;p—>next—>prior=s;s—>next=p—>next;B.p—>next=s;p—>next—>prior=s;s—>prior=p;s—>next=p—>next;C.s—>prior=p;s—>next=p—>next;p—>next=s;p—>next—>prior=s;D.s—>prior=p;s—>next=p—>next;p—>next—>prior=s;p—>next=s;

3.2.若⼀个栈的输⼊序列为1,2,3,…,n,输出序列的第⼀个元素是n,则第i个输出元素是()。A.n-i-1B.n-iC.n-i+1D.不确定

3.3.设a,b,c,d,e,f以给定的次序进栈,若在进栈操作时,允许出栈操作,则下⾯得不到的序列为()。A.f,e,d,c,b,aB.b,c,a,f,e,dC.d,c,e,f,b,a

D.c,a,b,d,e,f

3.5.若⼀个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下⾯x⼊栈的正确操作是()。A.top=top+1;V[top]=xB. V[top]=x;top=top+1C.top=top-1;V[top]=xD.V[top]=x;top=top-1

3.8.中级表达式A-(B+C/D)×E的后缀形式是()。A.AB-C+D/E×B.ABC+D/E×C.ABCD/E×+-D.ABCD/+E×-3.9、假设以数组A【m】存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为()A、(rear-front+m)%mB、rear-front+1

C、(front-rear+m)%mD、(rear-front)%m

3.10、循环队列存储在数组A【0..m】中,则⼊队时队尾的操作为()A、rear=rear+1

B、rear=(rear+1)%(m-1)C、rear=(rear+1)%mD、rear=(rear+1)%(m+1)

3.11、若元素a,b,c,d,e,f依次进栈,允许进栈,退栈操作交替进⾏,单不允许连续三次进⾏进退栈⼯作,则不可能得到的出栈序列是()A、dcebfaB、cbdaefC、dbcaefD、afedcb

3.12、某队列允许在其两端进⾏⼊队操作,但仅允许再⼀端进⾏出队操作,则不可能得到的顺序是()A、bacdeB、dbaceC、dbcaeD、ecbad

3.13、如果栈s和队列q的初始状态均为空,元素a,b,c,d,e,f,g依次进⼊栈s,如果每个元素出栈⽴即进⼊队列q,且7个元素出队的顺序是b,d,c,f,e,a,g,则栈s的容量⾄少是()A、1B、2

C、3D、4

4.3.串“ababaaababaa”的next数组为()A.0123456799B.012121111212C.011234223456D.012301232234

4.6.若s=”1234ab567abcdab0”,t=”ab”,r=””(空串),串替换StrRep(s,t,r)的结果是()A.”1234ab567abcdab0”B.”1234ab567abcd”C.”1234567cd0”D.”1234 567 cd 0”

4.7.S为⼀个长度为n的字符串,其中字符各不相同,则S中的互逆的⾮平凡⼦串(⾮空且不同于S本⾝)的个数()A.2n-1B.n2

C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1

4.8.若串S=”English”,其中串的个数是()A.9 B.16 C.36 D.28

5.1.数组A[5][6]的每个元素占5个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[4][5]的地址是(1145 )

5.2.若对n阶对称矩阵A以⾏序为主序⽅式将其下三⾓的元素(包括主对⾓线上所有元素)依次存放于⼀维数组B[1..(n(n+1))/2]中,aoo存放于数组B[1]中,则在B中确认定aij(iA.i×(i+1)/2+j B.j×(j+1)/2+I C.i×(j-1) D.j×m+i-1

5.3.设⼆维数组A[1..m,1..n]按⾏存储在数组B[1..m×n]中,则⼆维数组元素A[i][j]在⼀维数组B中的下标为()A.(i-1)×n+jB.(i-1)×n+j-1C.i×(j-1)D.j×m+i-1

5.5.设⼴义表L=((a,b,c)),则L的长度和深度分别为()A.1和1 B.1和3 C.1和2 D.2和3

5.6.有⼀个100×90的稀疏矩阵,⾮0元素有10个,设每个整型数占两个字节,则⽤三元组表⽰该矩阵时,所需的字节数是()A.60B.66C.18000

D.33

5.7.已知⼴义表LS=((a,b,c),(d,e,f)),运⽤Get Head和Get T ail函数取出LS中原⼦e的运算是()A.GteHead(Get T ail(LS))B. Get T ail(GteHead(LS))

C. GteHead(Get Tail(GteHead(Get T ail(LS)))D. GteHead(Get Tail(Get T ail(GteHead(LS)))

5.8.已知⼴义表:A=(a,b),B=(A,A),C=(a,(b,A),B),求下列运算的结果:Get Tail(GteHead(GetTail(C)))=()A.(a)B.AC.aD.(b)E.bF.(A)

6.2.设树T的度为4,其中度为1 、2、3、4的结点个数分别是4、2、1、1则T中的叶⼦数位()A 5B 6C 7D 8

6.3.由4个结点可以构造出()种不同的⼆叉树。A 10B 12C 14D 16

6.5.若⼀棵⼆叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A 9B 11C 15D 不确定

6.6 设⾼度为h 的⼆叉树只有度为0和2的结点则此类⼆叉树中所包含的结点数⾄少为()个。A 2hB 2h-1C 2h+1D h+1

6.7设给定权值的叶⼦总数有n 个,其哈夫曼树的结点总数为()。A 不确定

B 2nC 2n+1D 2n-1

6.10.根据使⽤频率,为5个字符设计的哈夫曼编码不可能是()。A 111,110,10,01,00B 000,001,010,011,1C 100,11,10,1,0D 001,000,01,11,10

7.1.⽆向图G=(V,E)V={a,b,c,d,e},E={(a,b)(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},其中对该图进⾏深度优先遍历,得到的顶点序列正确的是()A a,b,e,c,d,fB a,c,f,e,b,dC a,e,b,c,f,dD a,e,d,f,c,b

7.2.⼀个n个顶点的连通⽆向图,其边的个数⾄少为()A.n-1B.nC.n+1D.nlog2n

7.3.在图采⽤邻接表存储时,求最⼩⽣成树的Prim算法的时间复杂度为()A.O(n)B.O(n+e)C.O(n2)D.O(n3)

7.4.G是⼀个⾮连通的⽆向组,共有2边,则该图⾄少有()个顶点。A. 6B.7C.8D.9

7.6.⼀个有n个顶点的⽆向图,最少有()个连通分量,最多有()个连通分量。A.0B.1C.n-1D.n

7.7.在⼀个⽆向图中,所有顶点的度数之和等于所有边数()倍,在⼀个有向图中,所有顶点的⼊度之和等于所有顶点的出度之和的()倍。

A.1\\2B.2C.1D.4

8.1.若查找每个记录的概率均等,则在具有n个记录的顺序⽂件中采⽤顺序查找法查找⼀个记录,其平均查找长度ASL 为()A.(n-1)/2B.n/2C.(n+1)/2D.n

8.2.具有12个关键字的有序表,折半查找的平均查找长度为()A. 3.1B. 4C.2.5D. 5

8.10.假定有k个关键字互为同义词,若⽤线性探测法把这k个关键字存⼊散列表中,⾄少要进⾏()次探测。A.k-1次B. k次C.k+1次D.k(k+1)/2次

9.2.若对N个元素进⾏快速排序,如果初始数据已经有序,则时间复杂度为()。A.O(1)B.O(n)C.O(n^2)D.O(log2n)

9.5.⼀组记录的关键字问{46,79,56,38,40,84},则利⽤快速排序⽅法,以第⼀个记录为轴值得到的⼀次划分结果为()。A.{38,40,46,56,79,84,}B.{40,38,46,79,56,84}C.{40,38,46,56,79,84}D.{40,38,46,84,56,79}

9.6.⼀组记录的关键字为{45,80,55,40,42,85},则利⽤堆排序⽅法建⽴的初始堆为()。A.{80,45,50,40,42,85}B.{85,80,55,40,42,45}C.{85,80,55,45,42,40}D.{85,55,80,42,45,40}判断题(15 * 1’ = 15’)

⼀、正确(35个)

1.5.数据的物理结构是指数据在计算机内的实际存储形式。2.2.顺序存储的线性表可以按序号随机存取。

2.3.线性表采⽤链式表存储时,存储空间可以是不连续的。2.7.循环链表可以在尾部设置头指针。

2.8.为了⽅便插⼊和删除,可以使⽤双向链表存放数据。3.2.栈是实现过程和函数调⽤所必须的结构.

3.3.两个栈共享⼀⽚连续内存空间时,为提⾼内存利⽤率,减少溢出的机会,应把两个栈的栈底分别设在这⽚内存空间的两端.

3.5.栈与队列是⼀种特殊的线性表3.7.循环队列通常会浪费⼀个存储空间.3.8.循环队列也存在空间溢出问题.

3.9.栈和队列的存储⽅式,既可以是顺序⽅式,⼜可以是链式⽅式.3.10.任何⼀个递归过程都可以转换成⾮递归过程.

4.1.KMP算法的特点是在模式匹配时指⽰主串的指针不会变⼩。4.3.nest函数值序列的产⽣仅与模式串有关。

4.6.串名的存储应先⾼就是按串名访问串值的⼀种⽅法。4.8.在插⼊和删除操作中,链式串⼀定⽐顺序串⽅便。4.10.在串的顺序存储中,通常将’\\0’作为串的结束标记。5.2.⼆维以上的数组其实是⼀种特殊的⼴义表。5.3.稀疏矩阵压缩存储后,必会失去随机存取功能。

5.5.线性表可以看成是⼴义表的特例,如果⼴义表中的每个元素都是原⼦,则⼴义表便成为线性表。5.6.⼀个⼴义表可以为其他⼴义表所共享。

5.9.⼴义表是由零或多个原⼦或⼦表所组成的有限序列,所以⼴义表可能为空表。5.10.任何⼀个⾮空⼴义表,其表头可能是单个元素或⼴义表,其表尾必定是⼴义表。6.1.哈夫曼树的结点个数不可能是偶数。6.4.哈夫曼编码是前缀编码。

6.5.⾮空的⼆叉树⼀定满⾜:某结点若有左孩⼦,则其中序前驱⼀定没有右孩⼦。6.7.由先序和后序遍历序列不能唯⼀确定⼀棵⼆叉树。

6.9.⼀棵树的叶结点,在先序遍历和后序遍历下,皆以相同的相对位置出现。7.4.哈夫曼编码是前缀编码。

7.6.必须把⼀般树转成⼆叉树后才能进⾏存储。7.10.在哈夫曼树中,权值相同的叶结点都在同⼀层上。

8.10.装填因⼦是哈希表的⼀个重要参数,他反应哈希表的装满成度。9.2.在⼤根堆中,最⼤元素在根的位置。

9.8.只有在初始数据表为逆序时,直接插⼊排序所执⾏的⽐较次数最多。9.9.简单选择排序算法的时间复杂性不受数据的初始状态影响,为O(n2)。⼆、错误(46个)

1.1.数据元素是数据的最⼩单位。

1.2.数据的逻辑结构是指数据的各数据项之间的逻辑关系。1.3.算法的优劣与算法描述语⾔⽆关,但与所⽤计算机有关。1.4.程序⼀定是算法。

1.6.数据结构的抽象操作的定义与具体实现有关。

1.7.数据的逻辑结构表达了数据元素之间的关系,它依赖于计算机的存储结构。2.1.链表中的头结点仅起到标识的作⽤。

2.4.顺序存储⽅式插⼊和删除时效率太低,因此它不如链式存储⽅式好。2.5.对任何数据结构,链式存储结构⼀定优于顺序存储结构。

2.6.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不⼀定紧邻。

2.9.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随即存取的存储结构。2.10.取线性表的第i个元素的时间与i的⼤⼩有关。3.1.消除递归⼀定要⽤栈.

3.4.⽤递归⽅法设计的算法效率更⾼.

3.6.队列从逻辑上讲,是⼀端既能增加⼜能减少的线性表.

4.2.只要串采取定长顺序存储,串的长度就可⽴即获得,不需要函数求。4.4.空格串就是⼜零个字符组成的字符序列。

4.5.从串中取若⼲个字符组成的字符序列称为串的⼦串。4.7.两个串含有相等的字符,它们⼀定相等。4.9.串的存储密度与结点⼤⼩⽆关。

5.1.数组是⼀种复杂的数据结构,数组元素之间的关系既不是线性的,也不是树形的。

5.4.⼀个稀疏矩阵A采⽤三元组形式表⽰,若把三元组中有关⾏下标的值互换,并把m和n的值互换,则就完成了A的转置运算。

5.7.⼴义表中原⼦个数即为⼴义表的长度。

5.8.所谓取⼴义表的表尾就是返回⼴义表中最后⼀个元素。6.2.⼆叉树中序线索化后,不存在空指针域。

6.3.⼆叉树中序线索化后,任意⼀个结点均有指向前驱和后继的线索。6.6.必须把⼀般树转换成⼆叉树后才能进⾏存储。

6.8.⼀棵树中的叶⼦树⼀定等于与其对应的⼆叉树的叶⼦树。6.10.在哈夫曼树中,权值相同的叶结点都在同⼀层上。7.1.哈夫曼树的结点个数不可能是偶数。7.2.⼆叉树中序线索化后,不存在空指针域。

7.3.⼆叉树线索化后,任意⼀个结点均有指向其前驱和后继的线索。

7.5.⾮空的⼆叉树⼀定满⾜:某结点若有左孩⼦,则其中序前驱⼀定没有右孩⼦。7.7.由先序和后序遍历序列不能唯⼀确定⼀棵⼆叉树。7.8.⼀棵树中的叶⼦树⼀定等于与其对应的⼆叉树的叶⼦树。8.1.折半查找法的查找速度⼀定⽐顺序查找快。

8.2.就平均查找长度⽽⾔,分块查找最⼩,折半查找次之,顺序查找最⼤。8.4.哈希查找不需要进⾏任何⽐较。

8.7.有序的线性表⽆论如何储存,都能采⽤折半查找。8.9.哈希表的平均查找长度与处理冲突的⽅法⽆关。

9.1.快速排序的速度在所有的排序⽅法中最快,⽽且所需附加空间也最少。9.3.⽤Shell⽅法排序时,若关键字的初始排序越杂乱⽆序,则排序效率越低。9.4.对n个记录进⾏堆排序,在最坏情况下的时间复杂度是O(n2)。9.5.在任何情况下,快速排序⽅法的时间性能总是最优的。9.6.堆是满⼆叉树。

9.7.快速排序和归并排序在最坏情况下的⽐较次数都是O(nlog2n)。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务