收藏 分销(赏)

大工16春《数据结构》开卷考试复习.doc

上传人:人****来 文档编号:4411125 上传时间:2024-09-19 格式:DOC 页数:12 大小:82.50KB
下载 相关 举报
大工16春《数据结构》开卷考试复习.doc_第1页
第1页 / 共12页
大工16春《数据结构》开卷考试复习.doc_第2页
第2页 / 共12页
大工16春《数据结构》开卷考试复习.doc_第3页
第3页 / 共12页
大工16春《数据结构》开卷考试复习.doc_第4页
第4页 / 共12页
大工16春《数据结构》开卷考试复习.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、机密启用前大连理工大学网络教育学院2016年9月数据结构课程期末复习资料 注意事项:本复习题满分共:400分。一、单项选择题(本大题共65小题,每小题3分,共195分)1对于一个算法,当输入非法数据时,也要能作出相应得处理,这种要求称为( )。(A)、正确性 (B)、 可行性 (C)、 健壮性 (D)、 输入性2设S为C语言得语句,计算机执行下面算法时,算法得时间复杂度为( )。for(i=n-1;i=0;i-) for(j=0;ji;j+) S; (A)、n2 (B)、 O(nlgn) (C)、 O(n) (D)、 O(n2)3折半查找法适用于( )。(A)、有序顺序表 (B)、有序单链表(

2、C)、有序顺序表与有序单链表都可以 (D)、无限制4顺序存储结构得优势就是( )。(A)、利于插入操作 (B)、利于删除操作 (C)、利于顺序访问 (D)、利于随机访问5深度为k得完全二叉树,其叶子结点必在第( )层上。(A)、k-1 (B)、k (C)、k-1与k (D)、1至k6具有60个结点得二叉树,其叶子结点有12个,则度为1得结点数为( )(A)、11 (B)、13 (C)、48 (D)、377、下列程序段得时间复杂度为()。for(i=0; im; i+) for(j=0; jt; j+) cij=0;for(i=0; im; i+) for(j=0; jt; j+) for(k=

3、0; kright=s; s-left=p; p-right-left=s; s-right=p-right;(B) s-left=p;s-right=p-right;p-right=s; p-right-left=s;(C) p-right=s; p-right-left=s; s-left=p; s-right=p-right;(D) s-left=p;s-right=p-right;p-right-left=s; p-right=s;12图得Depth-First Search(DFS)遍历思想实际上就是二叉树( )遍历方法得推广。(A)、先序 (B)、中序 (C)、后序 (D)、层序1

4、3 在上图列链队列Q中,元素a出队得操作序列为( )(A)、p=Q、front-next; p-next= Q、front-next;(B)、p=Q、front-next; Q、front-next=p-next;(C)、p=Q、rear-next; p-next= Q、rear-next;(D)、p=Q-next; Q-next=p-next;14 Huffman树得带权路径长度WPL等于( )(A)、除根结点之外得所有结点权值之与 (B)、所有结点权值之与(C)、各叶子结点得带权路径长度之与 (D)、根结点得值15线索二叉链表就是利用( )域存储后继结点得地址。(A)、lchild (B)

5、、data (C)、rchild (D)、root16组成数据得基本单位就是( )。 (A) 数据项 (B) 数据类型 (C) 数据元素 (D) 数据变量17设数据结构A=(D,R),其中D=1,2,3,4,R=r,r=,则数据结构A就是( )。(A) 线性结构 (B) 树型结构 (C) 图型结构 (D) 集合18数组得逻辑结构不同于下列( )得逻辑结构。(A) 线性表 (B) 栈 (C) 队列 (D) 树19二叉树中第i(i1)层上得结点数最多有( )个。A2i B2i+1 C2i-1 D2i+220、对一个算法得评价,不包括如下( )方面得内容。 A健壮性与可读性 B并行性 C正确性 D时

6、空复杂度21、在带有头结点得单链表HL中,要向表头插入一个由指针p指向得结点,则执行( )。 A、 p-next=HL-next; HL-next=p; B、 p-next=HL; HL=p; C、 p-next=HL; p=HL; D、 HL=p; p-next=HL;22、对线性表,在下列哪种情况下应当采用链表表示?( ) A、经常需要随机地存取元素 B、经常需要进行插入与删除操作 C、表中元素需要占据一片连续得存储空间 D、表中元素得个数不变23、一个栈得输入序列为1 2 3,则下列序列中不可能就是栈得输出序列得就是( ) A、 2 3 1 B、 3 2 1 C、 3 1 2 D、 1

7、2 324下列各种排序算法中平均时间复杂度为O(n2)就是()。(A) 快速排序(B) 堆排序(C) 归并排序(D) 冒泡排序25设输入序列1、2、3、n经过栈作用后,输出序列中得第一个元素就是n,则输出序列中得第i个输出元素就是()。(A) n-i(B) n-1-i(C) n+l -i(D) 不能确定26设散列表中有m个存储单元,散列函数H(key)= key % p,则p最好选择()。(A) 小于等于m得最大奇数(B) 小于等于m得最大素数(C) 小于等于m得最大偶数(D) 小于等于m得最大合数27设在一棵度数为3得树中,度数为3得结点数有2个,度数为2得结点数有1个,度数为1得结点数有2

8、个,那么度数为0得结点数有()个。(A) 4(B) 5(C) 6(D) 728设完全无向图中有n个顶点,则该完全无向图中有()条边。(A) n(n-1)/2(B) n(n-1)(C) n(n+1)/2(D) (n-1)/229AOV网就是一种( )。A有向图 B无向图 C无向无环图 D有向无环图30采用开放定址法处理散列表得冲突时,其平均查找长度( )。A低于链接法处理冲突 B、 高于链接法处理冲突 C与链接法处理冲突相同 D高于二分查找31若需要利用形参直接访问实参时,应将形参变量说明为( )参数。A值 B函数 C指针 D引用32在稀疏矩阵得带行指针向量得链接存储中,每个单链表中得结点都具有

9、相同得( )。A行号 B列号 C元素值 D非零元素个数33快速排序在最坏情况下得时间复杂度为( )。AO(log2n) BO(nlog2n) C0(n) D0(n2)34从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A、 O(n) B、 O(1) C、 O(log2n) D、 O(n2)35设指针变量p指向单链表结点A,则删除结点A得后继结点B需要得操作为( )。(A) p-next=p-next-next (B) p=p-next(C) p=p-next-next (D) p-next=p36设栈S与队列Q得初始状态为空,元素E1、E2、E3、E4、E5与E6依次通过栈S,一个元

10、素出栈后即进入队列Q,若6个元素出列得顺序为E2、E4、E3、E6、E5与E1,则栈S得容量至少应该就是( )。(A) 6 (B) 4 (C) 3 (D) 237将10阶对称矩阵压缩存储到一维数组A中,则数组A得长度最少为( )。(A) 100 (B) 40 (C) 55 (D) 8038设结点A有3个兄弟结点且结点B为结点A得双亲结点,则结点B得度数数为( )。(A) 3 (B) 4 (C) 5 (D) 139根据二叉树得定义,可知具有3个结点得二叉树共有( )种不同得形态。(A) 4 (B) 5 (C) 6 (D) 740、 设有以下四种排序方法,则( )得空间复杂度最大。(A) 冒泡排序

11、 (B) 快速排序 (C) 堆排序 (D) 希尔排序41设某无向图有n个顶点,则该无向图得邻接表中有( )个顶点头结点。(A) 2n(B) n(C) n/2(D) n(n-1)42设无向图G中有n个顶点,则该无向图得最小生成树上有()条边。(A) n(B) n-1(C) 2n(D) 2n-143设一组初始记录关键字序列为(60,80,55,40,42,85),则以第一个关键字60为基准而得到得一趟快速排序结果就是()。(A) 40,42,60,55,80,85(B) 42,45,55,60,85,80(C) 42,40,55,60,80,85(D) 42,40,60,85,55,8044()二

12、叉排序树可以得到一个从小到大得有序序列。(A) 先序遍历(B) 中序遍历(C) 后序遍历(D) 层次遍历45设按照从上到下、从左到右得顺序从1开始对完全二叉树进行顺序编号,则编号为i结点得左孩子结点得编号为()。(A) 2i+1(B) 2i(C) i/2(D) 2i-146程序段s=i=0;do i=i+1; s=s+i;while(inext=0(C) head-next=head(D) head!=048设某棵二叉树得高度为10,则该二叉树上叶子结点最多有()。(A) 20(B) 256(C) 512(D) 102449设一组初始记录关键字序列为(13,18,24,35,47,50,62,

13、83,90,115,134),则利用二分法查找关键字90需要比较得关键字个数为()。(A) 1(B) 2(C) 3(D) 450设指针变量top指向当前链式栈得栈顶,则删除栈顶元素得操作序列为()。(A) top=top+1;(B) top=top-1;(C) top-next=top;(D) top=top-next;51栈与队列得共同特点就是( )。A、只允许在端点处插入与删除元素B、都就是先进后出 C、都就是先进先出D、没有共同点 52用链接方式存储得队列,在进行插入运算时( )、A、 仅修改头指针 B、 头、尾指针都要修改C、 仅修改尾指针 D、头、尾指针可能都要修改53以下数据结构中

14、哪一个就是非线性结构?( )A、 队列 B、 栈 C、 线性表 D、 二叉树54设有一个二维数组Amn,假设A00存放位置在644(10),A22存放位置在676(10),每个元素占一个空间,问A33存放在什么位置?脚注(10)表示用10进制表示。A688 B678 C692 D69655树最适合用来表示( )。A、有序数据元素 B、无序数据元素C、元素之间具有分支层次关系得数据 D、元素之间无联系得数据56设顺序表得长度为n,则顺序查找得平均比较次数为()。(A) n(B) n/2(C) (n+1)/2(D) (n-1)/257设有序表中得元素为(13,18,24,35,47,50,62),

15、则在其中利用二分法查找值为24得元素需要经过()次比较。(A) 1(B) 2(C) 3(D) 458设顺序线性表得长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为()。(A) 6(B) 11(C) 5(D) 6、559设有向无环图G中得有向边集合E=,则下列属于该有向图G得一种拓扑排序序列得就是()。(A) 1,2,3,4(B) 2,3,4,1(C) 1,4,2,3(D) 1,2,4,360设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成得二叉排序树得深度为()。(A) 4(B) 5(C) 6(D) 761二叉树得第k层得

16、结点数最多为( )、A2k B、 2k-2 C、 2k+1 D、 2k-162若有18个元素得有序表存放在一维数组A19中,第一个元素放A1中,现进行二分查找,则查找A3得比较序列得下标依次为( )A、 1,2,3 B、 9,5,2,3C、 9,5,3 D、 9,4,2,363对n个记录得文件进行快速排序,所需要得辅助存储空间大致为A、 O(1) B、 O(n) C、 O(1og2n) D、 O(n2)64对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1得元素有( )个,A1 B2 C3 D465设有6个结点得无向图

17、,该图至少应有( )条边才能确保就是一个连通图。A、5 B、6 C、7 D、8二、填空题(本大题共40小题,每小题2分,共80分)1、设指针变量p指向双向链表中得结点A,指针变量s指向被插入得结点X,则在结点A得后面插入结点X得操作序列为_=p;s-right=p-right;p-right-left=s;_=s;(设结点中得两个指针域分别为left与right)。2、设完全有向图中有n个顶点,则该完全有向图中共有_条有向条;设完全无向图中有n个顶点,则该完全无向图中共有_条无向边。3、当用长度为N得数组顺序存储一个栈时,假定用top=N表示栈空,则表示栈满得条件就是_。4、对于一个长度为n得

18、单链存储得线性表,在表头插入元素得时间复杂度为_,在表尾插入元素得时间复杂度为_。5、设W为一个二维数组,其每个数据元素占用4个字节,行下标i从0到7 ,列下标j从0到3 ,则二维数组W得数据元素共占用_个字节。W中第6 行得元素与第4 列得元素共占用_个字节。若按行顺序存放二维数组W,其起始地址为100,则二维数组元素W63得起始地址为_。6、广义表A= (a,(a,b),(a,b),c),则它得深度为_,它得长度为_。7、二叉树就是指度为2得_树。一棵结点数为N得二叉树,其所有结点得度得总与就是_。8、设有一组初始关键字序列为(24,35,12,27,18,26),按照从小到大排序,则第3

19、趟直接插入排序结束后得结果得就是_。9、设一棵二叉树得前序序列为ABC,则有_种不同得二叉树可以得到这种序列。10、下面程序段得功能就是实现一趟快速排序,请在下划线处填上正确得语句。struct record int key;datatype others;void quickpass(struct record r, int s, int t, int &i) int j=t; struct record x=rs; i=s; while(ij) while (ix、key) j=j-1; if (ij) ri=rj;i=i+1; while (_) i=i+1; if (inext=_;2

20、) p-next=s;3) t=p-data;4) p-data=_;5) s-data=t;12设某棵完全二叉树中有100个结点,则该二叉树中有_个叶子结点。13设某顺序循环队列中有m个元素,且规定队头指针F指向队头元素得前一个位置,队尾指针R指向队尾元素得当前位置,则该循环队列中最多存储_队列元素。14、已知一双向链表如下(指针域名为next与prior):现将p所指得结点插入到x与y结点之间,其中已知q指针指向x节点,其操作步骤为:_;_;_;_。15n个结点无向完全图得得边数为_,n个结点得生成树得边数为_。16已知一有向无环图如下:任意写出二种拓扑排序序列:_、_。17、已知二叉树得

21、中序遍历序列为BCA,后序遍历序列为CBA,则该二叉树得先序遍历序列为_,层序遍历序列为_。18设用于通信得电文仅由8个字母组成,字母在电文中出现得频率分别为7、19、2、6、32、3、21、10,根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树得高度为_。19设一组记录关键字序列为(80,70,33,65,24,56,48),则用筛选法建成得初始堆为(小根堆)_。20设无向图G(如右图所示),则其最小生成树上所有边得权值之与为_。21、逻辑结构决定了算法得_,而存储结构决定了算法得_。22、栈与队列都就是一种_得线性表,栈得插入与删除只能在_进行。23、线性表(a1,a2,an)得顺序存储结

22、构中,设每个单元得长度为L,元素a1得存储地址为addr,元素ai得存储地址LOC(ai)为 _、24、队列得插入操作就是在队列得_进行,删除操作就是在队列得_进行。25设二叉树中度数为0得结点数为50,度数为1得结点数为30,则该二叉树中总共有_个结点数。26设F与R分别表示顺序循环队列得头指针与尾指针,采用牺牲一个单元来区分队空与队满得方式下,则判断该循环队列为空得条件为_。27设二叉树中结点得两个指针域分别为lchild与rchild,则判断指针变量p所指向得结点为叶子结点得条件就是_。28简单选择排序与直接插入排序算法得平均时间复杂度为_。29快速排序算法得空间复杂度平均情况下为_,最

23、坏得情况下为_。30、散列表中解决冲突得两种方法就是_与_。31、数据结构就是指数据及其相互之间得_。当结点之间存在M对N(M:N)得联系时,称这种结构为_。32、对一棵二叉搜索树进行中序遍历时,得到得结点序列就是一个_。对一棵由算术表达式组成得二叉语法树进行后序遍历得到得结点序列就是该算术表达式得_。33、对于一棵具有n个结点得二叉树,用二叉链表存储时,其指针总数为_个,其中_个用于指向孩子,_个指针就是空闲得。34、若对一棵完全二叉树从0开始进行结点得编号,并按此编号把它顺序存储到一维数组A中,即编号为0得结点存储到A0中。其余类推,则A i 元素得左孩子元素为_,右孩子元素为_,双亲元素

24、为_。35、在线性表得散列存储中,处理冲突得常用方法有_与_两种。36、当待排序得记录数较大,排序码较随机且对稳定性不作要求时,宜采用_排序;当待排序得记录数较大,存储空间允许且要求排序就是稳定时,宜采用_排序。37、_遍历二叉排序树中得结点可以得到一个递增得关键字序列(填先序、中序或后序)。38、设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较_次就可以断定数据元素X就是否在查找表中。39、不论就是顺序存储结构得栈还就是链式存储结构得栈,其入栈与出栈操作得时间复杂度均为_。40、设有n个结点得完全二叉树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点得

25、双亲结点编号为_,右孩子结点得编号为_。三、 算法题(本大题共13小题,除第8题5分,其她每小题10分,共125分)1、设计在顺序有序表中实现二分查找得算法。2、设计判断二叉树就是否为二叉排序树得算法。3、在链式存储结构上设计直接插入排序算法4、设计在链式结构上实现简单选择排序算法。5、设计在顺序存储结构上实现求子串算法。6、编写算法,将一个结点类型为Lnode得单链表按逆序链接,即若原单链表中存储元素得次序为a1,an-1,an,则逆序链接后变为, an,an-1,a1。void contrary (Lnode * & HL)7、设有一组初始记录关键字序列(K1,K2,Kn),要求设计一个算

26、法能够在O(n)得时间复杂度内将线性表划分成两部分,其中左半部分得每个关键字均小于Ki,右半部分得每个关键字均大于等于Ki。8、设有两个集合A与集合B,要求设计生成集合C=AB得算法,其中集合A、B与C用链式存储结构表示。9设计计算二叉树中所有结点值之与得算法。10、设单链表中有仅三类字符得数据元素(大写字母、数字与其它字符),要求利用原单链表中结点空间设计出三个单链表得算法,使每个单链表只包含同类字符。11、设计在链式存储结构上交换二叉树中所有结点左右子树得算法。12、在链式存储结构上建立一棵二叉排序树。13、设计一个在链式存储结构上统计二叉树中结点个数得算法。答案:一、单项选择题(本大题共

27、65小题,每小题3分,共195分)1、 C 2、D 3、A 4、D 5、C 6、D 7、A8、A9、A10、C11、 D12、A13、B14、C 15、C16、C17、C18、D19、C20、B21、 A 22、B 23、C 24、D25、C26、B27、C28、A29、D 30、B 31、D 32、A 33、D 34、C35、A36、C37、C38、B39、B40、B41、B42、B43、C44、B45、B46、A47、C48、C49、B50、D51、A 52、D 53、D 54、C 55、C 56、C57、C58、D59、A60、A61、D 62、D 63、C 64、D 65、A二、填空题

28、(本大题共40小题,每小题2分,共80分)1、 s-left=p,p-right2、 n(n-1),n(n-1)/23、 top=04、 O(1) O(n)5、 128 44 1086、 3 3 7、 有序 n-18、 (12,24,35,27,18,26)9、 510、 ij & ri、keynext,s-data12、 5013、 m14、p-next=q-next;q-next-prior=p; q-next=p;p-prior=q;15、n(n-1)/2、n-116、ADCBFEG、ABCDEFFG17、ABC、ABC18、 619、 (24,65,33,80,70,56,48)20、

29、 821、 设计、实现22、 特殊、栈顶23、 addr+(i-1)xL24、 尾 首25、 12926、 F=R27、 p-lchild=NULL&p-rchild=NULL28、 O(n2)29、 O(nlog2n), O(n)30、 开放定址法,链地址法31、 联系 图(或图结构)32、 有序序列 后缀表达式(或逆波兰式)33、 2n n-1 n+134、 A2i+1 A2i+2 A35、 开放定址法 链接法36、 快速 归并37、 中序38、 739、 O(1)40、,2i+1三、算法题(本大题共13小题,除第8题5分,其她每小题10分,共125分)1、设计在顺序有序表中实现二分查找得

30、算法。struct record int key; int others;int bisearch(struct record r , int k) int low=0,mid,high=n-1; while(lowk) high=mid-1; else low=mid+1; return(0);2、设计判断二叉树就是否为二叉排序树得算法。int minnum=-32768,flag=1;typedef struct nodeint key; struct node *lchild,*rchild;bitree;void inorder(bitree *bt) if (bt!=0) inord

31、er(bt-lchild); if(minnumbt-key)flag=0; minnum=bt-key;inorder(bt-rchild);3、在链式存储结构上设计直接插入排序算法void straightinsertsort(lklist *&head) lklist *s,*p,*q; int t; if (head=0 | head-next=0) return; else for(q=head,p=head-next;p!=0;p=q-next) for(s=head;s!=q-next;s=s-next) if (s-datap-data) break; if(s=q-next)

32、q=p;elseq-next=p-next; p-next=s-next; s-next=p; t=p-data;p-data=s-data;s-data=t; 4、设计在链式结构上实现简单选择排序算法。void simpleselectsorlklist(lklist *&head) lklist *p,*q,*s; int min,t; if(head=0 |head-next=0) return; for(q=head; q!=0;q=q-next) min=q-data; s=q; for(p=q-next; p!=0;p=p-next) if(minp-data)min=p-data

33、; s=p; if(s!=q)t=s-data; s-data=q-data; q-data=t; 5、设计在顺序存储结构上实现求子串算法。void substring(char s , long start, long count, char t ) long i,j,length=strlen(s); if (startlength) printf(The copy position is wrong); else if (start+count-1length) printf(Too characters to be copied);else for(i=start-1,j=0; ist

34、art+count-1;i+,j+) tj=si; tj= 0;6、编写算法,将一个结点类型为Lnode得单链表按逆序链接,即若原单链表中存储元素得次序为a1,an-1,an,则逆序链接后变为, an,an-1,a1。void contrary (Lnode * & HL)答案:void contrary (Lnode * & HL)Lnode *p=HL;HL=NULL;While (p!=null) Lnode*q=p;p=pnext; qnext=HL; HL=q; 7、设有一组初始记录关键字序列(K1,K2,Kn),要求设计一个算法能够在O(n)得时间复杂度内将线性表划分成两部分,其中左半部分得每个关键字均小于Ki,右半部分得每个关键字均大于等于Ki。答案:void quickpass(int r, int s, int t) int i=s, j=t, x=rs; while(ij

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服