数据结构导论2142复习资料
02142数据结构导论2007年1 月份真题及答案

2007年1月高等教育自学考试全国统一命题考试数据结构导论试题课程代码2142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.关于栈和队列的说法中正确的是()A.栈和队列都是线性结构B.栈是线性结构,队列不是线性结构C.栈不是线性结构,队列是线性结构D.栈和队列都不是线性结构2.关于存储相同数据元素的说法中正确的是()A.顺序存储比链式存储少占空间B.顺序存储比链式存储多占空间C.顺序存储和链式存储都要求占用整块存储空间D.链式存储比顺序存储难于扩充空间3.从逻辑关系来看,数据元素的直接前驱为0个或1个的数据结构只能是()A.线性结构 B.树形结构C.线性结构和树型结构D.线性结构和图状结构4.已知一个单链表中,指针q指向指针p的前趋结点,若在指针q所指结点和指针p所指结点之间插入指针s所指结点,则需执行()A.q→next=s;p→next=s; B.q→next=s;s→next=p;C.q→next=s;q→next=p;D.q→next=s;s→next=q;5.在长度为n的线性表中删除一个指针p所指结点的时间复杂度是()A.O(n) B.O(1)C.O(log2n)D.O(n2)6.设一个栈的输入序列是a,b,c,d,则所得到的输出序列(输入过程中允许出栈)不可能出现的是()A.a,b,c,d B.a,b,d,cC.d,c,b,aD.c,d,a,b7.关于串的叙述中,正确的是()A.空串是只含有零个字符的串B.空串是只含有空格字符的串C.空串是含有零个字符或含有空格字符的串D.串是含有一个或多个字符的有穷序列8.在具有m 个单元的循环队列中,队头指针为front ,队尾指针为rear ,则队满的条件是( )A .front==rear B.(front+1)%m==rear C.rear+1==frontD.(rear+1)%m==front9.设有二维数组A [n ][n ]表示如下:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡ 653421, 则A [i ][i ](0≤i ≤n-1)的值为( ) A .i*(i-1)/2 B.i*(i+1)/2 C.(i+2)*(i+1)/2D.i 2/210.高度为h 的完全二叉树中,结点数最多为( ) A .2h-1 B.2h+1 C.2h -1D.2h11.由m 棵结点数为n 的树组成的森林,将其转化为一棵二叉树,则该二叉树中根结点的右子树上具有的结点个数是( ) A .mn B.mn-1 C.n(m-1)D.m(n-1)12.在一个具有n 个顶点的无向图中,每个顶点度的最大值为( ) A .n B.n-1 C.n+1D.2(n-1)13.关于无向图的邻接矩阵的说法中正确的是( ) A .矩阵中非全零元素的行数等于图中的顶点数 B.第i 行上与第i 列上非零元素总和等于顶点V i 的度数 C.矩阵中的非零元素个数等于图的边数D.第i 行上非零元素个数和第i 列上非零元素个数一定相等14.设一组记录的关键字key 值为{62,50,14,28,19,35,47,56,83},散列函数为H(key)=key mod 13,则它的开散列表中散列地址为1的链中的结点个数是( ) A .1 B.2 C.3D.415.设有一组初始关键字值序列为(49,81,55,36,44,88),则利用快速排序的方法,以第一个关键字值为基准得到的一次划分为( )A.36,44,49,55,81,88 B.44,36,49,55,81,88C.44,36,49,81,55,88D.44,36,49,55,88,81二、填空题(本大题共13小题,每小题2分,共26分)请在每小题的空格中填上正确答案。
自考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曾提出一个著名公式:程序=数据结构+________。
自考02142《数据结构导论》串讲笔记

第一张概论1.1 引言两项基本任务:数据表示,数据处理软件系统生存期:软件计划,需求分析,软件设计,软件编码,软件测试,软件维护由一种逻辑结构和一组基本运算构成的整体是实际问题的一种数学模型,这种数学模型的建立,选择和实现是数据结构的核心问题。
机外表示------逻辑结构------存储结构处理要求-----基本运算和运算-------算法1.2.1 数据,逻辑结构和运算数据:凡是能够被计算机存储,加工的对象通称为数据数据元素:是数据的基本单位,在程序中作为一个整体加以考虑和处理。
又称元素、顶点、结点、记录。
数据项:数据项组成数据元素,但通常不具有完整确定的实际意义,或不被当作一个整体对待。
又称字段或域,是数据不可分割的最小标示单位。
1.2.2 数据的逻辑结构逻辑关系:是指数据元素之间的关联方式,又称“邻接关系”逻辑结构:数据元素之间逻辑关系的整体称为逻辑结构。
即数据的组织形式。
四种基本逻辑结构:1 集合:任何两个结点间没有逻辑关系,组织形式松散2 线性结构:结点按逻辑关系依次排列成一条“锁链”3 树形结构:具有分支,层次特性,形态像自然界中的树4. 图状结构:各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接。
注意点:1.逻辑结构与数据元素本身的形式,内容无关。
2.逻辑结构与数据元素的相对位置无关3.逻辑结构与所含结点个数无关。
运算:运算是指在任何逻辑结构上施加的操作,即对逻辑结构的加工。
加工型运算:改变了原逻辑结构的“值”,如结点个数,结点内容等。
引用型运算:不改变原逻辑结构个数和值,只从中提取某些信息作为运算的结果。
引用:查找,读取加工:插入,删除,更新同一逻辑结构S上的两个运算A和B, A的实现需要或可以利用B,而B的实现不需要利用A,则称A可以归约为B。
假如X是S上的一些运算的集合,Y是X的一个子集,使得X中每一运算都可以规约为Y中的一个或多个运算,而Y中任何运算不可规约为别的运算,则称Y中运算(相对于X)为基本运算。
10月全国数据结构导论自考试题及答案解析

全国2019年10月高等教育自学考试数据结构导论试题课程代码:02142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列说法正确的是()A.数据是数据元素的基本单位B.数据元素是数据项中不可分割的最小标识单位C.数据可由若干个数据元素构成D.数据项可由若干个数据元素构成2.数据结构的基本任务是()A.逻辑结构和存储结构的设计B.数据结构的运算实现C.数据结构的评价与选择D.数据结构的设计与实现3.在一个具有n个结点的有序单链表中插入一个新结点,并使插入后仍然有序,则该操作的时间复杂性量级为()A.O(1)B.O(n)C.O(nlog2n)D.O(n2)4.顺序存储的线性表(a1,a2,…,a n),在任一结点前插入一个新结点时所需移动结点的平均次数为()A.n B.n/2C.n+1 D.(n+1)/25.下列树U′,经剪技运算DELETE(U′,x,2)后为()6.一棵有16结点的完全二叉树,对它按层编号,则对编号为7的结点X,它的双亲结点及右孩子结点的编号分别为()A.2,14 B.2,15C.3,14 D.3,157.设有一5阶上三角矩阵A[1..5,1..5],现将其上三角中的元素按列优先顺序存放在一1堆数组B[1..15]中。
已知B[1]的地址为100,每个元素占用2个存储单元,则A[3,4]的地址为()A.116 B.118C.120 D.1228.一个带权的无向连通图的最小生成树()A.有一棵或多棵B.只有一棵C.一定有多棵D.可能不存在9.下列有关图遍历的说法中不正确的是()A.连通图的深度优先搜索是一个递归过程B.图的广度优先搜索中邻接点的寻找具有“先进先出”的特征C.非连通图不能用深度优先搜索法D.图的遍历要求每一顶点仅被访问一次10.在最坏的情况下,查找成功时二叉排序树的平均查找长度()A.小于顺序表的平均查找长度B.大于顺序表的平均查找长度C.与顺序表的平均查找长度相同D.无法与顺序表的平均查找长度比较11.闭散列表中由于散列到同一个地址而引起的“堆积”现象,是由()A.同义词之间发生冲突引起的B.非同义词之间发生冲突引起的C.同义词之间或非同义词之间发生冲突引起的D.散列表“溢出”引起的12.从外存设备的观点看,存取操作的基本单位是()A.逻辑记录B.数据元素C.文件D.物理记录13.对文件进行检索操作时,每次都要从第一个记录开始的文件是()A.顺序文件B.索引文件C.顺序索引文件D.散列文件14.一组记录的键值为(46,74,18,53,14,20,40,38,86,65),利用堆排序的方法建立的初始堆为()A.(14,18,38,46,65,40,20,53,86,74)B.(14,38,18,46,65,20,40,53,86,74)C.(14,18,20,38,40,46,53,65,74,86)D.(14,86,20,38,40,46,53,65,74,18)15.对序列(22,86,19,49,12,30,65,35,18)进行一趟排序后得到的结果如下:(18,12,19,22,49,30,65,35,86),则可以认为使用的排序方法是()A.选择排序B.冒泡排序C.快速排序D.插入排序二、填空题(本大题共13小题,每空2分,共26分)请在每小题的空格中填上正确答案。
2010年5月衔接自考02142数据结构导论复习资料472

U={A,B,G} TE{(A,B),(A,G)}
U={A,B,G,I} TE{(A,B),(A,G),(G,I)}
U={A,B,G,I,E,} TE{(A,B),(A,G),(G,I),(I,E)}
29.排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是 【 】
A.选择排序 B.插入排序
C.冒泡排序 D.快速排序
30.在排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)
的一端的方法,称为 【 】
A.希尔排序 B.归并排序
A.1 B.2
C.3 D.4
14.排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是 【 】
A.选择排序 B.快速排序
C.冒泡排序 D.插入排序
15.排序算法中,不稳定的排序是 【 】
A.直接插入排序 B.冒泡排序
C.堆排序 D.归并排序
7.n-1 8.1 9. 10.索引表 11.顺序 12.8
13.O(n2)
U={A,B,G,I,E,D} TE{(A,B),(A,G),(G,I),(I,E),(E,D)}
U={A,B,G,I,E,D,C} TE{(A,B),(A,G),(G,I),(I,E),(E,D),(D,C)}
U={A,B,G,I,E,D,C,H} TE{(A,B),(A,G),(G,I),(I,E),(E,D),(D,C),(C,H )}
25.有4个顶点的无向完全图的边数为 【 】
A.6 B.12
C.16 D.20
26.设图的邻接矩阵为,则该图为 【 】
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.散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址。
全国2010年1月自考数据结构导论考试试题,答案,笔记

全国2010年1月自考数据结构导论考试试题,答案,笔记全国2010年1月高等教育自学考试数据结构导论试题课程代码:02142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下述文件中适合于磁带存储的是( A )A.顺序文件B.索引文件C.散列文件D.多关键字文件2.某二叉树的后根遍历序列为dabec,中根遍历序列为debac,则先根遍历序列为( D )A.acbedB.becabC.deabcD.cedba3.含有n个结点的二叉树用二叉链表表示时,空指针域个数为( C )A.n-1B.nC.n+1D.n+2 注:子域为2n个,有n-1个孩子。
4.在一个图中,所有顶点的度数之和与图的边数的比是( C)A.1∶2B.1∶1C.2∶1D.4∶15.长度为n的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为( A)A.O(1)B.O(1og2n) 二分法注:若只有尾指针,那么入和出都为O(1)C.O(n) (入队)D.O(n2) -冒泡6.下述几种排序方法中,要求内存量最大的是( C )A.插入排序B.快速排序C.归并排序D.选择排序7.对n个不同值进行冒泡排序,在元素无序的情况下比较的次数为( D)A.n-1B.nC.n+1D.n(n-1)/28.对线性表进行二分查找时,要求线性表必须( C)A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点按关键字有序排列D.以链接方式存储,且结点按关键字有序排列9.在表长为n的顺序表上做删除运算,其平均时间复杂度为( B )A.O(1)B.O(n) 注:在双向循环链表中,删除最后一个结点C.O(nlog2n)D.O(n2) 的时间复杂度为O(1)10.当利用大小为n 的数组顺序存储一个队列时,该队列的最大容量为( B )A.n-2B.n-1C.nD.n+1 11.有关插入排序的叙述,错误的...是( C)A.插入排序在最坏情况下需要O(n 2)时间B.插入排序在最佳情况可在O(n)时间内完成C.插入排序平均需要O(nlog 2n)时间-----快速排序需要o (nlog2n )D.插入排序的空间复杂度为O(1) 12.有关树的叙述正确的是( C)A.每一个内部结点至少有一个兄弟B.每一个叶结点均有父结点C.有的树没有子树D.每个树至少有一个根结点与一个叶结点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章概论1,数据表示:将数据从机外表示转化为机内表示。
变化过程:机外表示->逻辑结构->存储结构。
2,数据处理:计算机执行对机内表示的数据的各种操作从而实现处理要求,得到所需结果。
过程:处理要求->基本运算和运算->算法3,计算机专业人员的两项基本任务:数据表示和数据处理。
4,从数据结构观点看,通常的数据分为三个层次:数据、数据元素、数据项。
5,凡能被计算机存储、加工的对象通称为数据。
6,数据元素是数据的基本单位,具有完整确定的实际意义,又称为元素,结点,顶点或记录。
7,数据项是数据的不可分割的最小单位,不具备完整确定的实际意义,又称字段、域。
数据元素由数据项组成。
8,逻辑关系是指数据元素之间的关联方式或称邻接关系9,数据元素之间逻辑关系的整体称为逻辑结构。
数据的逻辑结构就是数据的组织形式。
10,数据逻辑结构四种基本形式:集合、线性结构、树形结构、图状结构。
11,集合:任何两个结点之间都没有逻辑关系,组织形式松散。
12,线性结构:结点按逻辑关系依次排列成一条锁链。
13,树形结构:具有分支、层次特点,其形态类似自然界中的树。
14,图状结构:各个结点按逻辑关系相互缠绕,任何两个结点都可以邻接。
15逻辑结构与数据元素本身形式、内容无关。
逻辑结构与数据元素相对位置无关。
逻辑结构与结点个数无关。
16,在数据的逻辑结构上规定的某种操作称为运算。
运算是指在任何逻辑结构上施加的操作,即对逻辑结构的加工。
这种加工以一个或多个逻辑结构及其他有关参数为对象,以经过修改的逻辑结构或从原逻辑结构中提取的有关信息为结果。
17,运算两种基本类型:加工型运算和引用型运算。
查找:找出满足某条件的结点在逻辑结构中的位置。
读取:读出某逻辑结构中指定位置的结点的内容。
插入:在某逻辑结构中指定位置增加一个新结点。
删除:撤销某逻辑结构中指定位置的结点。
更新:修改某逻辑结构中指定位置的结点内容。
18,数据结构中将数据的组织形式(逻辑结构)和对数据的操作方式(基本运算)作为一个整体来看待。
19,存储实现的目的是建立数据的机内表示。
建立的数据的机内表示称为数据的存储结构。
20,一个存储结构分为三个部分:存储节点,数据元素之间的关联方式,附加设施。
21,四种基本存储结构:顺序存储结构,链式存储结构,索引存储结构,散列存储结构。
(理解四种形式)22,算法是计算机科学的一个基本概念,也是程序设计的一个核心概念。
一个算法规定了求解给定问题所需要的所有处理步骤及其执行顺序,使得给定类型的任何问题都能在有限时间内被机械的求解。
23,任何算法都是用某种语言加以描述的。
三类:程序(计算机语言描述算法),伪语言算法,非形式算法。
24,非形式算法:用自然语言同时可能还使用了程序设计语言或伪语言描述的算法。
25,评价算法的4个方面:正确性,易读性,健壮性,高效性。
高效性是指算法的时间性能和空间性能。
26,算法在给定输入下的计算量:a,根据问题特点合理选择一种多多种“标准操作”。
b,确定算法在给定输入下执行了多少次标准操作,并将此次数规定为该算法在给定输入下的计算量。
27,以算法在所有输入下的计算量的最大值作为算法的计算量,称为算法的最坏情况的时间复杂度28,以算法在所有输入下的计算量的加权平均值作为算法的计算量,称为算法的平均时间复杂度29,算法的输入规模或问题的规模是指该算法输入的数据所含数据元素的数目或与此数目相关的其他参数。
30,常见的时间复杂度量级:常数阶O(1),对数阶O(log2n),线性阶O(n),平方阶O(n2),指数阶O(2n)。
通常认为具有指数阶量级的算法是实际不可计算的,低于平方阶的算法是高效的。
31,空间复杂度是除输入数据所占用存储空间之外所需要的附加的存储空间的大小。
第二章线性表1,线性结构是n个结点的有穷序列。
(a1,a2,a3…..an)。
注意:起始结点,终端结点,直接前趋,直接后继2,线性结构的节本特征:若至少含有一个结点,则除起始结点没有直接前趋外其他结点都有唯一一个直接前驱,除终端结点没有直接后继外其他每个结点都有唯一一个直接后继。
3,线性表的逻辑结构是线性结构。
表中所含结点个数为线性表的长度,若表长为0则称空表4,线性表的基本操作:Initate(L)初始化线性表L,Length(L)求线性表L长度,Get(L,i)读取线性表L中的第i个数据元素,Locate(L,x)在线性表L中查找值为x的数据元素的位置,Insert(L,x,i)将值为x的数据插入到线性表L的第i位置,Delete(L,i)从线性表L中删除第i个数据元素5,顺序表:是线性表的顺序存储结构,即按照顺序存储方式构造的线性表的存储结构,顺序表的一个存储结点存储线性表的一个数据元素,所有存储结点按相应数据元素间的逻辑关系决定的次序依次排列。
6,顺序表的类型定义:Const maxsize=顺序表容量//maxsize表示线性表中可容纳数据的个数Typedef struct{ datatype data[ maxsize ]; //data是数组,线性表的第1,2,3,…n个数据元素存入data[0], data[1],data[2]…. data[n-1]中Int last ; //last表示线性表的长度,maxsize表示} sqList;sqList L;顺序表是用一维数组实现的线性表,数组下标是元素的相对地址,逻辑上相邻的元素存储在物理位置也相邻的单元中7,顺序表的插入算法Void inset(sqlist L,datatype x,int i ){ if (st = = maxsize )error (“表满”);if (i<1 || i>st +1 )error (“位置非法”);for ( j = st ; j>=i ; j-- )L.data[j]=L.data[j-1]L.data[i-1]=x;st =st +1;}8,顺序表的删除算法Void Delete(sqlist L,int i ){ if (i<1 || i>st +1 )error (“位置非法”);for ( j = i+1; j<= st; j-- )L.data[j-2]=L.data[j-1]st =st -1;}9,顺序表的定位算法Int Locate (qslist L,datatype x){ i=1;While (i<=st && L.data[i-1] != x)i++;If ( i<=st ) return I;Else return 0;}在以上3个算法基础上能设计出简单顺序表相关算法10,顺序表插入算法平均移动次数:n/2,时间复杂度O(n)顺序表删除算法平均移动次数:n-1/2,时间复杂度O(n)顺序表定位,读表元,求表长算法复杂度O(1)11,顺序表的优点:无需为表结点逻辑关系而增加额外的存储空间;可以方便的随机存取表中任一结点;顺序表的缺点:插入和删除操作除表尾位置外要做大量移动效率较低,要求占用连续内存空间12,单链表的基本思想是用指针表示结点之间的逻辑关系。
节点分为两部分:data和nextData部分称为数据域,next部分称为指针域或链域。
所有节点通过指针的链接而组织成为单链表。
NULL表示空指针,head称为头指针变量指向单链表中的第一个结点。
13,链表结点类型定义:Typedef struct node * pointer ;Struct node{ datatype data;Point next;};Typedef pointer lklist;Pointer是指向struct node 类型的指针类型,struct node 是结构体类型,即结点类型指针的概念是链式存储结构的核心。
14,通常在单链表的第一个数据结点之前增设一个与结点类型相同但不存数据的结点称为头结点,其他为表结点,表中第一个和最后一个称为首节点和尾结点。
带头单链表的图示形式:15,单链表求表长算法Int length(lklist head){ p=head;j=0;While(p->next!=NULL){ p=p->next ; j++; }Return j;}16,单链表定位算法Int Locate (lklist head ,datatype x){ p=head;j=0;While(p->next !=NULL && p->data !=x){ p=p->next ; j++; }If ( p->data = = x) return j; Else return 0;}17,单链表的删除算法void delete (lklist head, int i){ p=head; j=0;While (p->next !=NULL && j<i-1){ p=p->next ; j++; }if ( p!=NULL && p->next!=NULL ){ q=p->next; p->next=q->next; free(q); }else error(”不存在第i个结点”);}18,单链表插入算法void insert (lklist head, datatype x,int i){ p=head; j=0;While (p->next !=NULL && j<i-1){ p=p->next ; j++; }if (p!=NULL ) { s=()malloc(); s->data=x; s->next=p->next; p->next=s; }else error(“不存在第i个位置”);}在以上4个算法基础上能设计出简单单链表相关算法19,循环链表的主要优点是从链表中任何一结点出发能通过后移操作而扫描整个循环链表。
图示:循环链表判空:若head->next = = head 则循环链表空。
20,双向链表:双向链表插入(在p所指结点后插入q所指结点):q->prior=p; q->next= p->next; p->next->prior=q; p->next =q;双向链表删除(删除p所指结点):p->prior->next=p->next; p->next->prior=p->prior;21,存储结点中数据域占用的存储量与整个存储结点中用存储量之比称为存储密度。