自考数据结构02142-第六章
自考02142数据结构导论考前密押120题及答案含解析

目录第一章概论 (1)第二章线性表 (7)第三章栈、队列和数组 (13)第四章树和二叉树 (17)第五章图 (22)第六章查找 (28)第七章排序 (33)第一章概论一、单选题1.数据的最小标识单位是()A.数据项B.数据类型C.数据元素D.数据变量2.任意两个结点之间都没有邻接关系,组织形式松散,这种组织形式称为()A.集合B.线性结构C.树形结构D.图结构3.与数据元素本身的形式、内容、相对位置、个数无关的是数据的()A.存储结构B.逻辑结构C.类型D.运算实现4.具有分支、层次特性,上层的结点可以和下层多个结点相邻接,但下层结点只能和上层的一个结点相邻接,这种组织形式称为()A.集合B.线性结构C.树形结构D.图结构5.数据的逻辑结构分为四种,其中结构最复杂的是()A.集合B.线性结构C.树形结构D.图结构6.“能正确地实现预定的功能,满足具体问题的需要”。
这种评价算法好坏的因素称为()A.正确性B.易读性C.健壮性D.时空性7.计算n!(整数n≥0)的递归算法是:int Factorial(int n){if(n==0)return1;else return n*Factorial(n-1);}其时间复杂度为()n)A.O(n)B.O(log2C.O(n c)D.O(n²)8.下面程序段的时间复杂度为()for(int i=0;i<n;i++)for(int j=0;j<n;j++)A[i][j]=i×j;A.O(1)B.O(n)n) D.O(n²)C.O(log29.将长度为n的单链表链接在长度为m的单链表之后的算法时间复杂度为()A.O(n)B.O(m)C.O(n+m)D.O(n×m)二、填空题10.数据结构是指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的________方式,以及定义在该组数据上的一组操作。
11.1976年瑞士计算机科学家Niklaus Wirth曾提出一个著名公式:程序=数据结构+________。
2020年10月自考02142数据结构导论试题及答案含评分标准

绝密★考试结束前
全国 2020 年10月高等教育自学考试
据结构导论试题
课程代码02142
1.请考生按规定用笔将所有试题的答案涂、写在答题纸上。
2.答题前考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
选择题部分
注意事项:
每小题选出答案后用2B铅笔把答题纸上对应题目的答案标号涂黑。
如需改动用橡皮擦干净后再选涂其他答案标号。
不能答在试题卷上。
一、单项选择题本大题共15小题每小题2分共30分。
在每小题列出的备选项中只有一项
是最符合题目要求的请将其选出。
1.数据的最小标识单位是
A.数据项
B.数据类型
C.数据元素
D.数据变量
2.下面程序段的时间复杂度为
o r=0;<n;++)
o r=0;<n;++)
a=*
;
A O(1)
B O(n)
C O2n DO n2)
3.设带头结点的单向循环链表的头指针变量为h e a d,
则空循环链表的判定条件是
A h e a d==NU L L
B h e a d->n e x==NU L L
C h e a d->n e x==h e a d
D h e a d=NU L L
4.设输入序列为1、2、3、4、5、
则通过栈的作用后可以得到的输出序列为。
02142数据结构导论份真题及答案.doc

2012年10月高等教育自学考试全国统一命题考试数据结构导论试题课程代码:02142请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分注意事项:1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。
如需改动,用橡皮擦干净后,再选涂其他答案标号。
不能答在试题卷上。
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的。
错选、多选或未选均无分。
1.下面几种算法时间复杂度阶数中,值最大的是A.O(nlog2n)B.O(n2)C.O(n)D.O(2n)2.即使输入非法数据,算法也能适当地做出反应或进行处理,不会产生预料不到的运行结果,这种算法好坏的评价因素称为A.正确性B.易读性C.健壮性D.时空性3.设顺序表的长度为100,则在第40个元素之后插入一个元素所需移动元素的个数为A.40B.60C.61D.1004.设带头结点的单循环链表的头指针为head,则判断该链表是否为空的条件是A. head->next==headB. head->next==NULLC. head!=NULLD. head==NULL5.在链栈的运算中,不需要...判断栈是否为空的是A.出栈B.进栈C.取栈顶元素D.求链栈的元素个数6.一个队列的输入序列是A,B,C,D,则该队列的输出序列是A.A,B,C,DB.B,C,D,AC.D,C,B,AD.C,D,B,A7.以行序为主序的二维数组a[3][5]中,第一个元素a[0][0]的存储地址是100,每个元素占2个存储单元,则a[1][2]的存储地址是A.100B.108C.114D.1168.对任何一棵二叉树T,若叶结点数为5个,则度为2的结点个数为A.4B.5C.6D.无法确定9.m个叶结点的哈夫曼树中,其结点总数为A.mB.2m+1C.2mD.2m-110.二叉树的中序遍历序列中,结点P排在结点Q之前的条件是A.在二叉树中P在Q的左边B.在二叉树中P在Q的右边C.在二叉树中P是Q的祖先D.在二叉树中P是Q的子孙11.有10个顶点的无向完全图的边数是A.11B.45C.55D.9012.在带权有向图中求两个结点之间的最短路径可以采用的算法是A.迪杰斯特拉(Dijkstra)算法B.克鲁斯卡尔(Kruskal)算法C.普里姆(Prim)算法D.深度优先搜索(DFS)算法13.二分查找(Binary Search)算法的时间复杂度是A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)14.在一棵初始时为空的二叉树中,依次插入键值序列50,72,43,85,75,20,38,45,65,60,构造对应的二叉排序树以后,查找元素60要进行的比较次数是A.2B.3C.4D.515.快速排序属于A.插入排序B.交换排序C.选择排序D.归并排序非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
2023年10月自考02142数据结构导论试题及答案含评分标准

绝密 考试结束前2023年10月高等教育自学考试数据结构导论试题课程代码:021421.请考生按规定用笔将所有试题的答案涂㊁写在答题纸上㊂2.答题前,考生务必将自己的考试课程名称㊁姓名㊁准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上㊂选择题部分注意事项:每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑㊂如需改动,用橡皮擦干净后,再选涂其他答案标号㊂不能答在试题卷上㊂一㊁单项选择题:本大题共15小题,每小题2分,共30分㊂在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出㊂1.时间复杂度的常数阶表示为A.O(1)B.O(n)C.O(n2)D.O(2n)2.下列关于单链表的描述,错误∙∙的是A.所有结点通过指针链接形成链表B.头指针变量不一定非要用h e a d来标识C.尾结点指针域的值N U L L称为空指针D.通常用尾指针来表示一个单链表3.线性表实现顺序存储可使用A.栈B.队列C.数组D.链表4.设单链表中指针p指向结点A,要删除A之后的结点(若存在),则修改指针的操作为A.p n e x t=p n e x t n e x tB.p=p n e x tC.p=p n e x t n e x tD.p n e x t=p5.出队列操作使用的赋值语句是A.S Q.r e a r=S Q.r e a r+1B.S Q.r e a r=S Q.r e a r-1C.S Q.f r o n t=S Q.f r o n t+1D.S Q.f r o n t=S Q.f r o n t-16.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以t o p为栈顶指针,当栈未满时进行进栈操作,此时A.t o p不变B.t o p--C.t o p++D.t o p=07.带头结点链队列的头指针和尾指针分别为f r o n t和r e a r,则判断队列空的条件为A.f r o n t==r e a rB.f r o n t!=N U L LC.r e a r!=N U L LD.f r o n t==N U L L8.深度为k(kȡ1)的二叉树的结点数最多为A.2k-1B.2k-1C.2k+1D.2k+19.下列关于树形结构的描述,正确的是A.树形结构是线性结构B.树中每个结点可以有多个直接前驱结点C.树可以用顺序存储D.树中每个结点只能有一个直接后继结点10.对任何一棵二叉树,若度数为0的结点(叶结点)个数为n0,度数为2的结点个数为n2,则n0等于A.0B.n2-1C.n2 D.n2+111.设有10个顶点的无向图,若它为连通图,则它具有的边数最少为A.9B.10C.11D.1212.设含有n个顶点,e条弧的有向图G采用邻接表存储,则拓扑排序算法的时间复杂度为A.O(n)B.O(n+e)C.O(n2)D.O(nˑe)13.当查找表中有n个数据元素时,假设P i(i=1,2, ,n)为查找第i个元素的概率,在P i等概率的条件下,顺序查找算法的平均查找长度为A.n/2B.(n+1)/2C.nD.n+114.二维数组A以行为主序存储,每个元素占1个存储单元㊂若元素A[1][1]的存储地址是420,A[3][3]的存储地址是446,则A[5][5]的存储地址是A.470B.471C.472D.47315.冒泡排序属于A.插入排序B.归并排序C.选择排序D.交换排序非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上㊂二㊁填空题:本大题共13小题,每小题2分,共26分㊂16.在数据库中数据项又称为字段或 һ ㊂17.在单链表存储结构中,线性表的表长等于单链表中 һ 的结点个数㊂18.二叉树的顺序存储结构可以用 һ 维数组来实现㊂19.在操作系统中,为了保持多个进程P1㊁P2㊁P3和P4按某种次序依次执行,需要一个 һ来实现这个过程㊂20.对称矩阵有近一半元素可以通过其对称元素获得,因此可将含有n2个元素的对称矩阵压缩存储到含有 һ 个元素的一维数组中㊂21.设有一个带头结点的链栈,其头指针为h e a d,现有一个新结点入栈,指向该结点的指针为p,则入栈操作为 һ 和h e a d n e x t=p㊂22.满二叉树一定是 һ 二叉树㊂23.在树形结构中,结点间具有 һ 关系㊂24.在图中,序列中顶点不重复出现的路径称为 һ 路径㊂25.D i j k s t r a算法用于求 һ 问题㊂26.求最小生成树有 һ 方法和K r u s k a l方法㊂27.若在查找过程中,向表中插入不存在的数据元素,或者从表中删除某个数据元素,则称此类表为 һ 查找表㊂28.在二分查找㊁索引顺序查找和散列查找三种查找方法中,平均查找长度与元素个数没有关系的查找方法是 һ ㊂三㊁应用题:本大题共5小题,每小题6分,共30分㊂29.设有一个链栈的输入序列为A㊁B㊁C,当输出序列分别为A B C和B C A时,请写出对应的进栈和出栈过程㊂30.设有一森林F如题30图所示,请分别写出先序遍历和中序遍历的序列㊂题30图31.如题31图所示长度为13的散列表,其散列函数为H(k e y)=k e y m o d13,在表中已填入键值分别为16,30,54的元素㊂(1)现要插入键值为29的元素,应用线性探测法,计算填入散列表中单元的序号㊂(要求给出求解过程)(2)线性探测法中,如何减少堆积的机会?0123456789101112541630题图32.如题32图所示的图结构,请写出以10为源点的广度优先搜索得到的顶点访问序列,并画出搜索过程图㊂(同等情况下,值小的结点优先访问)题32图33.给定有序表D={006,087,155,188,220,465,505,508,511,586,656,670,700,766},用二分查找法在D中查找511,试给出查找过程㊂四㊁算法设计题:本大题共2小题,每小题7分,共14分㊂34.编制函数求1+2+ +n㊂35.已知循环队列的结构类型如下:t y p e d e f s t r u c t c y c q u e u e{D a t a T y p e d a t a m a x s i z ei n t f r o n t r e a r}C y c Q u eC y c Q u e C Q设计入队列的算法㊂绝密 启用前2023年10月高等教育自学考试全国统一命题考试数据结构导论试题答案及评分参考(课程代码 02142)一㊁单项选择题:本大题共15小题,每小题2分,共30分㊂1.A2.D3.C4.A5.C6.C7.B8.B9.C10.D11.A 12.B 13.B 14.C 15.D 二㊁填空题:本大题共13小题,每小题2分,共26分㊂16.域17.数据元素18.一19.队列20.n (n +1)/221.pn e x t =h e adn e x t22.完全23.层次24.简单25.单源最短路径26.P r i m27.动态28.散列查找三㊁应用题:本大题共5小题,每小题6分,共30分㊂29.输出A B C :A 进,A 出,B 进,B 出,C 进,C 出;(3分)输出B C A :A 进,B 进,B 出,C 进,C 出,A 出㊂(3分)30.先序序列为A B C D E F G H J I ;(3分)中序序列为B C D A F E J H I G ㊂(3分)31.(1)散列函数求出其散列地址为3,在地址3上面已有元素16,发生冲突㊂(1分)应用线性探测法,得到下一个地址为d +1=4,仍冲突,(1分)则再求下一个地址d +2=5,这个位置上没有元素,将元素填入散列表中序号为5的单元㊂(2分)(2)应设法使后继散列地址尽量均匀地分散在整个散列表中㊂(2分)32.序列:10,20,30,50,40,60(3分)答32图(3分)33.01(1)006 02087 03155 04188 05220 06465 07505 08508 09511 10586 11656 12670 13700 14766ʏl o wʏm i dʏh i gh (2分)(2)006 087 155 188 220 465 505 508 511 586 656 670 700 766ʏʏʏl o w m i d h i gh (2分)(3)006 087 155 188 220 465 505 508 511 586 656 670 700 766ʏʏʏl o w m i d h i gh (2分)四㊁算法设计题:本大题共2小题,每小题7分,共14分㊂34.i n t f a c t 1(i n t n ){ i n t i ,j ,t e m p ,s ; s =0;(2分) f o r (i =1;i <=n ;i ++) {t e m p =1;(3分)f o r (j =1;j <=i ;j ++) t e m p =t e m p *j; s =s +t e m p ;}r e t u r n s ;}(2分)(注:答案不唯一,正确即可)35.i n tE n Q u e u e (C y c Q u eC Q ,D a t a T y pex ){i f ((C Q.r e a r +1)%m a x s i z e ==C Q.f r o n t ) {e r r o r ( 队列满 );r e t u r n0;}(3分)e l s e { C Q.r e a r=(C Q.r e a r +1)%m a x s i z e ; C Q.d a t a [C Q.r e a r ]=x ;(3分)r e t u r n 1; }分)。
浙江省2001年10月自学考试数据结构导论试题及答案

浙江省2001年10月自学考试数据结构导论试题课程代码:02142一、单项选择题(在每小题的四个备选答案中选出一个正确答案,并将其号码填在题干的括号内。
每小题1分,共14分)1.算法分析的目的是( )A.找出数据结构的合理性B.研究算法中的输入/输出关系C.分析算法的效率以求改进D.分析算法的易读性2.在需要经常查找结点的前驱与后继的场合中,使用( )比较合适。
A.单链表B.双链表C.顺序表D.循环链表3.下面关于线性表的叙述中,错误的为( )A.顺序表使用一维数组实现的线性表B.顺序表必须占用一片连续的存储单元C.顺序表的空间利用率高于链表D.在链表中,每个结点只有一个链域4.带头结点的单链表head为空的判断条件是( )A. head=NILB. head↑.next=NILC. head↑.next=headD. head< >NIL5.队列通常采用两种存储结构是( )A.顺序存储结构和链表存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构6.按照二叉树的定义,具有3个结点的二叉树有( )A.3B.4C.5D.67.二叉树的结构如下图所示,其中序遍历的序列为( )A.a,b,d,g,c,e,f,hB.d,g,b,a,e,c,h,fC.g,d,b,e,h,f,c,aD.a,b,c,d,e,f,g,h8.深度为5的二叉树至多有( )个结点。
A.16B.32C.31D.109.对于一个具有n个顶点的无向图,若采用邻接表表示,则存放表头结点的数组的大小为( )A.nB.n+1C.n-1D.n+边数10.在一个具有n个顶点的无向图中,要连通全部顶点至少需要( )条边。
A.nB.n+1C.n-1D.n/211.静态查找表与动态查找表二者的根本差别在于( )A.它们的逻辑结构不一样B.施加在其上的操作不同C.所包含的数据元素的类型不一样D.存储实现不一样12.散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址。
2024年自考-自考专业(计算机网络)-数据结构考试历年真题常考点试题带答案篇

2024年自考-自考专业(计算机网络)-数据结构考试历年真题常考点试题带答案(图片大小可任意调节)第1卷一.单选题(共25题)1.设有一个10阶的对称矩阵A,采用行优先压缩存储方式,a11为第一个元素,其存储地址为1,每个元素占一个字节空间,则a85的地址为()。
A.13B.18C.33D.402.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()。
A.3B.37C.50D.973.若栈采用链式存储结构,则下列说法中正确的是()。
A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()。
A.2个B.3个C.4个D.6个5.若一个算法的时间复杂度用T(n)表示,其中n的含义是()。
A.问题规模B.语句条数C.循环层数D.函数数量6.设栈的初始状态为空,入栈序列为1,2,3,4,5,6,若出栈序列为2,4,3,6,5,1,则操作过程中栈中元素个数最多时为()。
A.2 个B.3 个C.4 个D.6 个7.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。
若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为()。
A.(rear-front-1) %nB.(rear-front) % nC.(front-rear+1) %nD.(rear-front+n) %n8.二维数组A[10][6]采用行优先的存储方法,若每个元素占4个存储单元,已知元素A[3][4]的存储地址为1000,则元素A[4][3]的存储地址为()。
A.1020B.1024C.1036D.10369.便于进行布尔查询的文件组织方式是()。
A.顺序文件B.索引文件C.散列文件D.多关键字文件10.在一个长度为n的顺序表中插入一个元素的算法的时间复杂度为()。
02142数据结构导论2012年10月份真题及答案
2012年10月高等教育自学考试全国统一命题考试数据结构导论试题课程代码:02142请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分注意事项:1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。
如需改动,用橡皮擦干净后,再选涂其他答案标号。
不能答在试题卷上。
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的。
错选、多选或未选均无分。
1.下面几种算法时间复杂度阶数中,值最大的是A.O(nlog2n)B.O(n2)C.O(n)D.O(2n)2.即使输入非法数据,算法也能适当地做出反应或进行处理,不会产生预料不到的运行结果,这种算法好坏的评价因素称为A.正确性B.易读性C.健壮性D.时空性3.设顺序表的长度为100,则在第40个元素之后插入一个元素所需移动元素的个数为A.40B.60C.61D.1004.设带头结点的单循环链表的头指针为head,则判断该链表是否为空的条件是A. head->next==headB. head->next==NULLC. head!=NULLD. head==NULL5.在链栈的运算中,不需要...判断栈是否为空的是A.出栈B.进栈C.取栈顶元素D.求链栈的元素个数6.一个队列的输入序列是A,B,C,D,则该队列的输出序列是A.A,B,C,DB.B,C,D,AC.D,C,B,AD.C,D,B,A7.以行序为主序的二维数组a[3][5]中,第一个元素a[0][0]的存储地址是100,每个元素占2个存储单元,则a[1][2]的存储地址是A.100B.108C.114D.1168.对任何一棵二叉树T,若叶结点数为5个,则度为2的结点个数为A.4B.5C.6D.无法确定9.m个叶结点的哈夫曼树中,其结点总数为A.mB.2m+1C.2mD.2m-110.二叉树的中序遍历序列中,结点P排在结点Q之前的条件是A.在二叉树中P在Q的左边B.在二叉树中P在Q的右边C.在二叉树中P是Q的祖先D.在二叉树中P是Q的子孙11.有10个顶点的无向完全图的边数是A.11B.45C.55D.9012.在带权有向图中求两个结点之间的最短路径可以采用的算法是A.迪杰斯特拉(Dijkstra)算法B.克鲁斯卡尔(Kruskal)算法C.普里姆(Prim)算法D.深度优先搜索(DFS)算法13.二分查找(Binary Search)算法的时间复杂度是A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)14.在一棵初始时为空的二叉树中,依次插入键值序列50,72,43,85,75,20,38,45,65,60,构造对应的二叉排序树以后,查找元素60要进行的比较次数是A.2B.3C.4D.515.快速排序属于A.插入排序B.交换排序C.选择排序D.归并排序非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
自学考试02142《数据结构导论》历年真题全套试题
自考02142《数据结构导论》历年真题集电子书目录1. 目录 (2)2. 历年真题 (3)2.1 02142数据结构导论200410 (3)2.2 02142数据结构导论200510 (7)2.3 02142数据结构导论200610 (10)2.4 02142数据结构导论200701 (14)2.5 02142数据结构导论200710 (17)2.6 02142数据结构导论200801 (19)2.7 02142数据结构导论200810 (22)2.8 02142数据结构导论200901 (25)2.9 02142数据结构导论200910 (28)2.10 02142数据结构导论201001 (30)2.11 02142数据结构导论201010 (34)2.12 02142数据结构导论201101 (37)2.13 02142数据结构导论201110 (40)3. 相关课程 (42)1. 目录历年真题()02142数据结构导论200410()02142数据结构导论200510()02142数据结构导论200610()02142数据结构导论200701()02142数据结构导论200710()02142数据结构导论200801()02142数据结构导论200810()02142数据结构导论200901()02142数据结构导论200910()02142数据结构导论201001()02142数据结构导论201010()02142数据结构导论201101()02142数据结构导论201110()相关课程()2. 历年真题2.1 02142数据结构导论2004102004年下半年高等教育自学考试全国统一命题考试数据结构导论试题课程代码2142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为()A.逻辑结构、存储结构、机外表示B.存储结构、逻辑结构、机外表示C.机外表示、逻辑结构、存储结构D.机外表示、存储结构、逻辑结构2.若评价算法的时间复杂性,比较对数阶量级与线性阶量级,通常()A.对数阶量级复杂性大于线性阶量级B.对数阶量级复杂性小于线性阶量级C.对数阶量级复杂性等于线性阶量级D.两者之间无法比较3.下列关于线性表的基本操作中,属于加工型的操作是()A.初始化、求表长度、插入操作B.初始化、插入、删除操作C.求表长度、读元素、定位操作D.定位、插入、删除操作4.在一个单链表中,若p所指结点不是最后结点,s指向已生成的新结点,则在p 之后插入s所指结点的正确操作是()A.s–>next=p–>next; p–>next=B.p–>next=s–>next; s–>next=C.s–>next=p; p–>next=D.s–>next=p–>next; p=5.若有三个字符的字符串序列执行入栈操作,则其所有可能的输出排列共有()A.3种B.4种C.5种D.6种6.C语言对数组元素的存放方式通常采用()A.按行为主的存储结构B.按列为主的存储结构C.按行或列为主的存储结构D.具体存储结构无法确定7.根据定义,树的叶子结点其度数()A.必大于0B.必等于0C.必等于1D.必等于28.二叉树若采用二叉链表结构表示,则对于n个结点的二叉树一定有()A.2n个指针域其中n个指针为NULLB.2n个指针域其中n+1个指针为NULLC.2n-1个指针域其中n个指针为NULLD.2n-1个指针域其中n+1个指针为NULL9.在一个无向图中,所有顶点的度数之和等于边数的()A.1倍B.2倍C.3倍D.4倍10.若采用邻接表存储结构,则图的广度优先搜索类似于二叉树的()A.先根遍历B.中根遍历C.后根遍历D.层次遍历11.采用顺序查找法,若在表头设置岗哨,则正确的查找方式通常为()A.从第0个元素开始往后查找该数据元素B.从第1个元素开始往后查找该数据元素C.从第n个元素开始往前查找该数据元素D.从第n+1个元素开始往前查找该数据元素12.下列查找中,效率最高的查找方法是()A.顺序查找B.折半查找C.索引顺序查找D.分块查找13.索引文件通常由索引表和主文件两部分构成,其中()A.索引表和主文件均必须是有序文件B.索引表和主文件均可以是无序文件C.索引表必须是有序文件D.主文件必须是有序文件14.直接插入排序算法,其时间复杂性为()A.O(1)B.O(n)C.O(nlog2n)D.O(n2)15.下列排序方法中,属于稳定的排序方法是()A.直接插入排序法B.快速排序法C.冒泡排序法D.堆排序法二、填空题(本大题共13小题,每小题2分,共26分)请在每小题的空格中填上正确答案。
自学考试《数据结构》各章复习要点总结
栈顶元素总是最后被插入的元素,最早被删除。
2. 元素具有相对位置
栈中的元素具有相对位置,即栈底元素位于栈的最下方,栈顶元素位于栈的最上方。
3. 限定插入和删除位置
只能在一端(称为栈顶)进行插入和删除操作。
03
04
05
栈的定义和特点
01
02
总结词
队列是一种特殊的线性数据结构,遵循先进先出(FIFO)原则。
顺序存储结构的优点
顺序存储结构具有访问速度快、空间利用率高等优点,适用于元素数量固定的线性表。
顺序存储结构的缺点
顺序存储结构的插入和删除操作较为复杂,需要移动大量元素,且需要预先分配连续的存储空间。
链式存储结构的概念
链式存储结构是指将线性表中的元素分散存储在若干个节点中,每个节点包含数据域和指针域,指针域指向下一个节点。
02
线性查找的时间复杂度为O(n),其中n为数据结构中的元素个数。
线性查找
二分查找是一种高效的查找算法,适用于有序的数据结构。
二分查找将数据结构分成两半,比较中间元素与目标值,根据比较结果决定在左半部分或右半部分继续查找,直到找到目标值或确定目标值不存在。
二分查找的时间复杂度为O(log n),其中n为数据结构中的元素个数。
总结词
图的存储结构
图的遍历是指按照某种规则访问图中的所有节点,并对每个节点执行相应的操作。
图的遍历算法包括深度优先搜索(DFS)和广度优先搜索(BFS)。DFS按照深度优先的顺序访问节点,而BFS则按照广度优先的顺序访问节点。
总结词
详细描述
图的遍历
最短路径算法
最短路径算法是指在图中找到两个节点之间的最短路径,即路径长度最短的一条路径。
【历年自考真题6套】数据结构导论02142试题(2015年10月-2020年8月)
A. 二叉链表是二叉树唯一的链式存储结构
B. 对二叉链表的访问可以从任意结点开始
C. 每个二叉链表不需要有一个指向根节点的指针
D. 二叉链表的结点结构包含一个数据域和两个指针域
10. 假设初始森林中共有 n 棵二叉树,每棵树中都仅有一个孤立的结点。 将该森林构造成哈夫
曼树,则最终求得的哈夫曼树的结点数为
A. n-1
B. n
C. 2n-1
D. 2n
11. 无向图中的极大连通子图是
A. 连通分量
B. 生成树
C. 强连通分量
D. 强连通图
12. 在用邻接表表示图时,对图进行深度优先搜索遍历的算法的时间复杂度为
A. O(n)
B. O(n+e)
C. O(n2)
D. O(n3)
浙 02142# 数据结构导论试题 第 2 页( 共 5 页)
位置,rear 指示队列尾结点。 如果队列中元素的个数为 10,front 的值为 25,则 rear 应指向的
元素是
A. Q[4]
B. Q[5]
C. Q[14]
D. Q[15]
8. 二叉树第 i( i逸1) 层上的结点数最多为
A. 2i-1
B. i-1
C. 2*i
D. 2*(i-1)
9. 关于二叉链表,下列叙述正确的是
const int n = 3;
void MM( int A[ n] [ n] )
{ 摇 摇 int i,j,temp;
for( i = 0;i<n;i++)
for( j = 0;j<i;j++)
摇 摇 摇 { 摇 temp = A[ i] [ j] ;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Key:(13,41,15,44,06,68,25,12,38, 64, 19,49) 散列 地址: 0, 2, 2, 5, 6, 3, 12,12,12, 12, 6, 10
——用“线性探测法”处理冲突构造散列表
●思想:计算出的散列地址已被占用,则按顺序找 “下一个”空位。 ●过程:设有散列表HT(向量),对给定记录R, 其关键字k,对应哈希地址H(k)=>j
4、例:(在下列有序顺序表中查找K=18)
1 2 3 4 5 6 7 8 9
15,17,18,22,35,51,60,88,93 low mid high
因为18<35,所以:
low mid 因为18>17,所以: high
low high mid 因为18=18,所以:查找成功,回送结果为mid=3
二、算法
方法一:使用一种设计技巧:设立岗哨 int search_sqtable(sqtable T, keytype K ) { /*在顺序表R中顺序查找其关键字等于key的元素。 若找到,则函数值为该元素在表中的位置,否则为 0*/ T.item[0].key=key; i=T.n; while ( T.item[i].key!=key ) i- - ; return i ; }
第六章 查找
• • • • 6.1 6.2 6.3 6.4 基本概念 静态查找表 二叉排序树 散列表
6.1 基本概念
▲查找表——由同一类型的数据元素(或记录) 构成的集合。 ▲关键字(键)——用来标识数据元素的数据 项称 为关键字,简称键;其值称为键 ▲主关键字—— 可以惟一标识各个数据元素的关键字 值。 ▲查找——根据给定的某个k值,在查找表寻找 一个 其键值等于k的数据元素。 ▲静态查找表—进行的是引用型运算
0
1 散列表:
3
1
1 2
2
4 1
3
1 5 6 8
4
4 4
5
0 6
6
3 8
7
6 4
8
6
9 10 11 12
4 9 2 5
●散列法的优缺点:
优点:直接由关键字通过哈希函数计算
出哈
希地址,查找效率高; 缺点:常发生冲突,影响查找效率。
第六章
查找小结
▲熟练掌握顺序表和有序表的查找方法和算法; ▲掌握二叉排序树的定义、构建方法和查找方法; ▲知道二叉排序树的定义及维护平衡四个旋转规
则;
▲掌握B_树的定义和建树过程,查找方法;
▲什么是散列方法、什么是冲突? ▲熟练掌握散列表的构造和查找及冲突的处理; ▲按定义计算各种查找方法在等概率情况下查找
成功的平均查找长度。
练
习
1.二分查找算法要求被查找的表是( ) A. 键值有序的链表 B. 键值不一定有序的链表 C. 键值有序的顺序表 D. 键值不一定有序的顺序表 2.静态查找表与动态查找表的根本差别在于( ) A. 逻辑结构不同 B.存储实现不同 C. 施加的操作不同 D. 数据元素的类型不同 3.在二叉排序树中,对于任意结点a,其左子树中所有结点 的键值均( ) A. 小于结点a的键值 B. 小于等于结点a的键值 C. 大于结点a的键值 D. 大于等于结点a的键值 4. 在二叉排序树中,对于任意结点a,其右子树中所有结点 的键值均( ) A. 小于结点a的键值 B. 小于等于结点a的键值 C. 大于结点a的键值 D. 大于等于结点a的键值
(3)若low≤high,则转(1),否则查找不成功。
3、二分查找算法:
int SearchBin( SqTable T, keytype key ) {
/*在有序表T中二分查找其关键字等于 key的数据元素;若找到
, 则返回该元素在表中的位置,否则返回0
*/
low=1 ; high=T.n ; while ( low<=high ) { mid=(low+high)/2 ; if (K==T.item[mid].key) return mid ; else if ( key< R.item[mid].key ) high =mid-1 ; else low=mid+1 ; } return (0) ;
6.2.3 索引顺序表的查找——分块查找
一、查找过程:
1.先建立最大(或小)关键字表——索引表(有 序)
即将每块中最大(或最小)关键字及指示块 首记录在表中位置的指针依次存入一张表中,此 表称为索引表;
2.查找索引表,以确定所查元素所在块号; 将查找关键字k与索引表中每一元素(即各 块中最大关键字)进行比较,以确定所查元素所 在块号;
HT表
N
HT[j]空吗?
Y 记录R存入其中
0 1 :
j :
m-1
HT[j].key=k? ≠ = j+1=>j 找到,输出 Y
j=m ?
N
0=>j
★要点:①HT[j]空,则R填入; ②HT[j].key=k,则输出; ③否则,按顺序一步步找“下一个”空 位,将R填入。
●例:已知一组关键字为(13,41,15,44, 06, 68,25,12,38,64,19,49),按散 列 Key:(13,41,15,44,06,68,25,12,38, 64, 函数H(key)=key mod 13 和线性探测法 19,49) 处 散列 地址: 理冲突构造散列表。 0, 2, 2, 5, 6, 3, 12,12,12, 12, 6, 10
ai在表中地址 散列函数:关键字 与元素地址的函数
◆散列地址——由散列函数决定数据元素的 存储 位置,该位置称为散列地址。
◆散列查找: 散列函数转换 在表中的地址 给定关键字 查看此位置上有无欲查元素 无 有 输出信息 将它填到此位置上
◆散列表——通过散列法建立的表称为散列表。
◆冲突: k1≠ k2 但 H(k1)=H(k2)的现象称为冲突。
2、在第2块中顺序查找得第9号元素 其关键字为38。
第 二 块
第 三 块
表 可 分 三 块, 块 间 有 序, 块 中 无 序
三、算法分析:
分块查找的时间性能高于顺序查找而低于 二分查找; 分块查找不要求存储结构中数据元素按键 值有序。
6.3 动态查找表——树表
表结构是在查找过程中动态生成的;对于给定值k,若 表中存在其关键字等于k的记录,则查找成功返回,否则 在表中插入关键字等于k的记录。
一、二叉排序树
●什么是二叉排序树? 二叉排序树是一种特殊的、增加了限制条件的二叉树,它的存储 结构及其类型定义与二叉树相同,它的特殊性表现在结点键值之 间的大小关系上,任一结点的键值大于其左孩子(及其子孙)的键 值且小于其右孩子(及其子孙)的键值。 ●性质: 中序遍历一棵二叉排序树所得的结点访问序列是键值的 递增序列。
二、二叉排序树上的查找:
1、过程:
当二叉排序树不空时,首先将给定值和根结点的关键字 比较,若相等,则查找成功;否则根据给定值与根结点关键字 间的大小关系,分别在左子树或右子树上继续进行查找。
2、二叉排序树查找算法 见P169
注: (1)二叉排序树,对每个结点,均有: 左子树上的所有结点键值都比根的小; 右子树上的所有结点键值都比根的大。 (2)构造二叉排序树的同时也对序列排序了;
▲动态查找表—进行的是加工型运算
6.2 静态查找表的实现
查找表用顺序表表示:(见P163)
#define maxsize 20 //静态查找表的表长 typedef struct { TableElem etem[maxsize+1] ;/* 一维数组,0号单元留空*/ int n ; /*最后一个元素的下标,也即表长*/ }SqTable ;
三、算法分析
n
成功查找:ASL=∑ i=1CiPi (设每个记录的查找概率相等) n =1/n ∑ i=1(n-i+1) =(n+1)/2 不成功查找:ASL=n+1 ▲顺序查找优点:简单,对表无要求; ▲顺序查找缺点:比较次数多。
6.2.2 有序表上的查找——二分查找★
1、二分查找思想:
.中项是,则找到;
即:不同的关键字映射到同一存储单元。 并称k1和 k2是同义词。 散列法主要工作 .选择一个好的散列函数 .解决冲突
.函数计算简便,运算速度快 .随机性好,地址尽可能均匀分布 .冲突小
6.4.1 散列函数的构造 1、数字分析法(见P173) 2、除留余数法
▲散列函数:取关键字被某个不大于散列表长n的数p除 后所得余数作为散列地址。 即: H(key)= key mod p , (p≤n ) ▲例: 一组关键字从000,001 ~ 859,999 散列地址为:0 ~ 5999 即 n=6000 取 p=5999 ——余数r在0~5999范围内 方法关键 ——如何取p ? H=k mod 5999 设: k=172,148 ★结论:① p不取偶数 则:H=k mod p = 172148 mod 5999 n = 4176 ② p不取关键字字符基的 倍 ③一般选p为质数且最接近表长m的质数
typedef struct { keytype key ; /*关键字域 */ … /*其它域*/
}
TableElem
;
6.2.1 顺序表上的查找——顺序查找
一、过程
从表中最后一个记录开始顺序进行查找,若当前记录的关 键字=给定值,则查找成功;否则,继续查上一记录…;若直 至第一个记录尚未找到需要的记录,则查找失败。
三、二叉排序树的插入和生成★ 对序列R={k1,k2,…,kn}, k1~ kn均为 关键字值,则按下列原则可构造二叉排序树: (1)令k1为根;
(2)若k1<k2 ,则令k2为k1的右孩,否则为左 孩; (3) k3,k4,…,kn递归重复(2)
6.4 散列表(哈希表)