数据结构期末试题提纲

合集下载

数据结构期末考试复习总结,DOC

数据结构期末考试复习总结,DOC

《数据结构》期末考试题型及分值(1)简答题6题*5分=30分简要回答要点(2)分析题6题*5分=30分给出结果(3)设计题1题*10分=10分设计思想及结果(4)编程题1题*10分=10分完整代码(5)综合题1题*20分=20分抽象数据类型的定义、表示、实现、算法分析{定义=功能(ADT)表示=存储结构体实现=算法(基本操作)算法分析=时间、空间复杂度}考试概念有:1.数据结构{一、线性表(栈-队-列-串-数组-广义表-逻辑结构-存储结构-运算结构)二、非线性表(集合-树-图)}2.抽象数据类型数据对象-数据关系-基本操作3.算法性质-要求(设计)-效率(度量)4.实例查找:高效查找算法排序:高效的排序算法分析题考试题目参考(1)1-2-3-4-5-6顺序建BBST(2)6-5-4-3-2-1顺序建BBST简答题实例设计题:(1)(2)数据结构试卷(一)三、计算题(每题6分,共24分)1. 在如下数组A 中链接存储了一个线性表,表头指针为A[0].next ,试写出该线性表。

A01234567dat a 60 50 78 90 34 40nex t3 5 7 2 04 1线性表为:(78,50,40,60,34,90)⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡0111010111101110101011102. 请画出下图的邻接矩阵和邻接表。

3. 已知一个图的顶点集V 和边集E 分别为:V={1,2,3,4,5,6,7}; E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。

用克鲁斯卡尔算法得到的最小生成树为: (1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)20 4.画出向小根堆中加入数据4,2,5,8,3时,每加入一个数据后堆的变化。

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)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. 下面哪个数据结构用于实现最小树算法?A. 栈B. 队列C. 散列表D. 堆8. 下面哪个数据结构用于实现拓扑排序算法?A. 栈B. 队列C. 散列表D. 堆9. 下面哪个数据结构用于实现最短路径算法?A. 栈B. 队列C. 散列表D. 堆10. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。

2. 二叉树的节点最多有______个子节点。

3. 堆是一种特殊的______。

4. 散列表的查找效率取决于______。

5. 图的遍历算法包括______和______。

6. 快速排序算法的平均时间复杂度为______。

7. 哈希表中的冲突解决方法有______和______。

8. 最小树算法包括______和______。

9. 最短路径算法包括______和______。

10. 并查集算法用于解决______问题。

第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。

2. 请简述二叉搜索树的特点。

3. 请简述哈希表的原理。

4. 请简述图的深度优先搜索算法。

5. 请简述最小树算法的原理。

第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。

数据结构复习资料复习提纲知识要点归纳

数据结构复习资料复习提纲知识要点归纳

数据结构复习资料复习提纲知识要点归纳数据结构复习资料:复习提纲知识要点归纳一、数据结构概述1. 数据结构的定义和作用2. 常见的数据结构类型3. 数据结构与算法的关系二、线性结构1. 数组的概念及其特点2. 链表的概念及其分类3. 栈的定义和基本操作4. 队列的定义和基本操作三、树结构1. 树的基本概念及定义2. 二叉树的性质和遍历方式3. 平衡二叉树的概念及应用4. 堆的定义和基本操作四、图结构1. 图的基本概念及表示方法2. 图的遍历算法:深度优先搜索和广度优先搜索3. 最短路径算法及其应用4. 最小生成树算法及其应用五、查找与排序1. 查找算法的分类及其特点2. 顺序查找和二分查找算法3. 哈希查找算法及其应用4. 常见的排序算法:冒泡排序、插入排序、选择排序、归并排序、快速排序六、高级数据结构1. 图的高级算法:拓扑排序和关键路径2. 并查集的定义和操作3. 线段树的概念及其应用4. Trie树的概念及其应用七、应用案例1. 使用数据结构解决实际问题的案例介绍2. 如何选择适合的数据结构和算法八、复杂度分析1. 时间复杂度和空间复杂度的定义2. 如何进行复杂度分析3. 常见算法的复杂度比较九、常见问题及解决方法1. 数据结构相关的常见问题解答2. 如何优化算法的性能十、总结与展望1. 数据结构学习的重要性和难点2. 对未来数据结构的发展趋势的展望以上是数据结构复习资料的复习提纲知识要点归纳。

希望能够帮助你进行复习和回顾,加深对数据结构的理解和掌握。

在学习过程中,要注重理论与实践相结合,多进行编程练习和实际应用,提高数据结构的实际运用能力。

祝你复习顺利,取得好成绩!。

数据结构考试题纲

数据结构考试题纲

考试题型选择题:21分填空题:18分判断题:15分简答题:26分算法题:20分什么是数据元素?组成数据的成分数据什么是数据项?什么是数据结构?是由数据元素依据某种逻辑联系组织起来的严格地说,数据元素与结点是一回事吗?no什么是算法的时间复杂度?程序运行从开始到结束所需要的时间什么是大O表示法?使用大O记号表示的算法的时间复杂度,称为算法的渐近时间复杂度。

什么是顺序存储结构?什么是链式存储结构?什么是顺序表?在顺序表上进行插入和删除操作的算法复杂度是多少?O(n)哪些算法的实施只能在顺序表上进行?什么是栈和队列?堆栈(栈):限定插入和删除操作都在表同一端进行的线性表队列:限定在表的一端插入,在表的另一端删除的线性表怎样实现链式栈和链式队列?怎样判断一个出栈序列是否合法?因为对于出栈序列中的每一个数字,在它后面的、比它小的所有数字,一定是按递减顺序排列的怎样将中缀表达式转换成后缀表达式?(1)从左到右扫描中缀表达式,遇到#转(6);(2)遇到操作数直接输出;(不进栈)(3)遇到“)”,则连续出栈输出,直到遇到“(”为止(“(”出栈但不输出);否则(4)若是其它操作符,则与栈顶的操作符比较优先级;若优先级小于栈顶的优先级,则连续出栈输出,直到大于等于结束,操作符进栈;(5)转(1);(6)输出栈中剩余操作符(#除外)。

什么是循环链表?循环链表是另一种形式的链式存贮结构。

它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。

什么是循环队列?克服"假溢出"现象将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。

存储在其中的队列称为循环队列循环队列为空或满的条件是什么?当front==rear 时为空队列,当(rear+1) % MaxSize ==front 时为满队列满队列时实际仍有一个元素的空间未使用什么是单链表?每个节点都有一个指针域的链表叫单链表什么是带表头结点的单链表?链表的前面有个空表头为什么要引入表头结点?方便在表的最前面进行插入和删除什么是满二叉树?高度为h的二叉树恰好有2h –1个结点什么是完全二叉树?一棵二叉树中,只有最下面两层结点的度可以小于2,并且最下一层的叶结点集中在靠左的若干位置上。

数据结构复习提纲

数据结构复习提纲

数据结构复习提纲一、线性表线性表是最基本的数据结构之一,它是具有相同数据类型的 n 个数据元素的有限序列。

1、顺序表定义和特点:顺序表是用一组地址连续的存储单元依次存储线性表的数据元素。

存储结构:通常使用数组来实现。

基本操作:插入、删除、查找、遍历等。

时间复杂度分析:插入和删除操作在平均情况下的时间复杂度为O(n),查找和遍历操作的时间复杂度为 O(n)。

2、链表定义和特点:链表是通过指针将各个数据元素链接起来的一种存储结构。

单链表:每个节点包含数据域和指针域,指针域指向链表的下一个节点。

双链表:节点包含两个指针域,分别指向前驱节点和后继节点。

循环链表:尾节点的指针指向头节点,形成一个环形结构。

基本操作:插入、删除、查找等。

时间复杂度分析:插入和删除操作在平均情况下的时间复杂度为O(1),查找操作的时间复杂度为 O(n)。

二、栈和队列1、栈定义和特点:栈是一种限制在一端进行插入和删除操作的线性表,遵循“后进先出”的原则。

存储结构:顺序栈和链栈。

基本操作:入栈、出栈、栈顶元素获取等。

应用:表达式求值、括号匹配、函数调用等。

2、队列定义和特点:队列是一种在一端进行插入操作,在另一端进行删除操作的线性表,遵循“先进先出”的原则。

存储结构:顺序队列和链队列。

基本操作:入队、出队、队头元素获取等。

循环队列:解决顺序队列“假溢出”问题。

应用:层次遍历、消息队列等。

三、串1、串的定义和存储方式定长顺序存储堆分配存储块链存储2、串的基本操作串的赋值、连接、比较、求子串等。

3、模式匹配算法朴素的模式匹配算法KMP 算法:理解其原理和计算 next 数组的方法。

四、数组和广义表1、数组数组的定义和存储结构数组的地址计算特殊矩阵的压缩存储(如对称矩阵、三角矩阵、稀疏矩阵)2、广义表广义表的定义和表示广义表的递归算法1、树的基本概念定义、术语(如节点、度、叶子节点、分支节点、父节点、子节点、兄弟节点、层次等)树的性质2、二叉树定义和特点二叉树的性质完全二叉树和满二叉树3、二叉树的存储结构顺序存储链式存储4、二叉树的遍历先序遍历中序遍历后序遍历层序遍历5、二叉树的递归和非递归遍历算法实现线索化的目的和方法7、树、森林与二叉树的转换8、哈夫曼树定义和构造方法哈夫曼编码六、图1、图的基本概念定义、术语(如顶点、边、权、有向图、无向图、邻接矩阵、邻接表等)2、图的存储结构邻接矩阵邻接表十字链表邻接多重表3、图的遍历深度优先搜索(DFS)广度优先搜索(BFS)4、图的应用最小生成树(Prim 算法、Kruskal 算法)最短路径(Dijkstra 算法、Floyd 算法)拓扑排序关键路径七、查找1、查找的基本概念关键字、平均查找长度等2、顺序查找算法实现时间复杂度3、折半查找算法实现时间复杂度判定树4、分块查找5、二叉排序树定义和特点插入、删除操作查找算法6、平衡二叉树定义和调整方法7、 B 树和 B+树结构特点基本操作8、哈希表哈希函数的构造方法处理冲突的方法(开放定址法、链地址法等)八、排序1、排序的基本概念排序的稳定性2、插入排序直接插入排序折半插入排序希尔排序3、交换排序冒泡排序快速排序4、选择排序简单选择排序堆排序5、归并排序6、基数排序7、各种排序算法的时间复杂度、空间复杂度和稳定性比较。

数据结构复习提纲(整理)

数据结构复习提纲(整理)

复习提纲第一章数据结构概述基本概念与术语(P3)1.数据结构是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科.2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合2.数据元素是数据的基本单位3.数据对象相同性质的数据元素的集合4.数据结构包括三方面内容:数据的逻辑结构.数据的存储结构.数据的操作. (1)数据的逻辑结构指数据元素之间固有的逻辑关系.(2)数据的存储结构指数据元素及其关系在计算机内的表示( 3 ) 数据的操作指在数据逻辑结构上定义的操作算法,如插入,删除等.5.时间复杂度分析--------------------------------------------------------------------------------------------------------------------1、名词解释:数据结构、二元组2、根据数据元素之间关系的不同,数据的逻辑结构可以分为集合、线性结构、树形结构和图状结构四种类型。

3、常见的数据存储结构一般有四种类型,它们分别是___顺序存储结构_____、___链式存储结构_____、___索引存储结构_____和___散列存储结构_____。

4、以下程序段的时间复杂度为___O(N2)_____。

int i,j,x;for(i=0;i<n:i++) n+1for(j=0;j<n;j++) n+1x+=i;------------------------------------------------------------------------------------------------------------------第二章线性表1.顺序表结构由n(n>=0)个具有相同性质的数据元素a1,a2,a3……,an组成的有穷序列//顺序表结构#define MAXSIZE 100typedef int DataType;Typedef struct{DataType items[MAXSIZE];Int length;}Sqlist,*LinkList;//初始化链表void InitList(LinkList *L){(*L)=(LinkList)malloc(sizeof(LNode));if(!L){cout<<”初始化失败!”;return;}(*L)->next=NULL;}//插入数据void InsertList(LinkList L,int pos,DataType x){LinkList p=L,q;int i=0;while(p&&i<pos-1){p=p->next;i++;}if(!p||i>pos-1){cout<<”插入位置错误”;return;}InitList(&q);q->next=p->next;p->next=q;q->data=x;}//销毁链表void DestoryList(LinkList L){LinkList t;while(L){t=L;L=L->next;free(t);}}//遍历链表void TraverseList(LinkList L){LinkList t=L;while(L){t=t->next;cout<<t->data<<” ”;}cout<<endl;}//删除元素void DeleteList(LinkList L,int pos){LinkList p=L,q;int i=0;while(p&&i<pos-1){p=p->next;i++;}if(!p||i>pos-1){cout<<”删除位置错误!!”;return;}q=p->next;p->next=q->next;free(q):}第三章栈和队列1.栈(1)栈的结构与定义(2)顺序栈操作算法:入栈、出栈、判断栈空等(3)链栈的结构与定义2.队列(1)队列的定义----------------------------------------------------------------------------------------------------------------1、一个栈的入栈序列为“ABCDE”,则以下不可能的出栈序列是()A. BCDAEB. EDACBC. BCADED. AEDCB2、栈的顺序表示仲,用TOP表示栈顶元素,那么栈空的条件是()A. TOP==STACKSIZEB. TOP==1C. TOP==0D. TOP==-13、允许在一端插入,在另一端删除的线性表称为____队列____。

数据结构期末考试重点复习资料

数据结构期末考试重点复习资料

期末考试重点复习资料二、考试重点内容第一章绪论1、时间复杂度和空间复杂度的计算。

要求能够计算出程序的执行次数。

2、各种概念:数据结构、数据项、数据元素第二章线性表1、单链表的各种操作,包括单链表的建立、插入、删除结点的操作语句序列2、单链表(带头结点、不带头结点、循环单链表)的逆置运算。

3、双链表的插入和删除操作语句序列。

4、单链表的直接插入排序运算。

5、静态单链表的插入和删除操作。

6、二个有序单链表的合并、一个单链表拆分为多个单链表第三章栈和队列1、栈的输入序列和输出序列、递归函数的输出结果2、循环队列的入队、出队操作以及有效元素个数的计算第四章串1、KMP算法中的next和nextval值的计算第五章数组和广义表1、二维数组任意元素地址的计算2、稀疏矩阵的转置算法3、广义表的两个操作函数:取表头和表尾第六章树和二叉树1、二叉树的性质(特别是完全二叉树的性质,例如求完全二叉树的深度等)2、二叉树的遍历(特别是中序和先序遍历,要求能够使用堆栈完成非递归遍历编程和递归算法编程,在遍历基础上的各种操作,例如求二叉树的叶子数、二叉树结点数等操作,包括有编程算法和编程填空题)3、线索二叉树(特别是中序线索化二叉树和中序线索化二叉树的中序遍历,包括编程算法和编程填空题,希望大家着重研究)4、哈夫曼编码(主要是应用题,包括哈夫曼的编码与解码,也包括哈夫曼树的特点)5、树与森林在转化成二叉树时,左右子树的结点数有何特点)6、树的层次遍历(使用队列完成、借助树的层次遍历可以判断二叉树是否为完全二叉树)、判断二叉树是否为排序二叉树等,可能有编程题或编程填空题)补充:二叉树的物理存储结构(链式和顺序存储)*第七章图1、图的两种物理存储方式(邻接矩阵与邻接表存储表示)2、图的生成树与最小生成树(生成树特点)、图的遍历3、求最小生成树的两种算法(重点是PRIM 算法,特别会写出用PRIM算法求最小生成树的过程)4、使用迪杰斯特拉算法求单源最短路径,写出求解过程5、拓扑排序6、求关键路径,要求写出事件和活动的最早和最晚开始时间,深刻理解关键路径的含义。

数据结构复习提纲

数据结构复习提纲

复 习 题一、填空题若一个算法的时间复杂度用T(n)表示,其中n 的含义是 问题规模二叉树第k 层的最大结点数为 2k-1 . 栈和队列的共同特点是只允许在端点处插入和删除元素。

有128个结点构成的完全二叉树,其深度为 8 。

一个有n 个顶点的无向连通图至少有 n-1 条边。

最多有 n(n-1)/2 条边在二叉排序树中,关键字值最小的结点 左指针一定为空。

在待排序的元素逆序的情况下,直接插入排序的比较次数为 ( n-1)(n+2)/2 次。

正序情况下比较次数为 n-1前序序列和后序序列相同的二叉树为 空或只有根结点的二叉树 。

带头结点的单循环链表head 为空的判定条件是 head->next==head 。

假设以数组S[0..m-1]作为循环队列的存储结构,同时设变量front 和rear 分别指向队头元素的前一个位置和队尾元素位置,则队列中元素个数为 (rear-front+m)%m 。

设数组data[m]作为循环队列SQ 的存储空间,front 为队头指针,rear 为队尾指针,则执行出队操作后其头指针front 值为 front=(front+1)%m一个有n 个顶点的有向图至多有 n(n-1) 条弧。

在二叉排序树中,关键字值最大的结点 右指针一定为空 。

一组记录的排序码为(72,73,71,23,94,5,68),则利用快速排序方法,以第一个记录为基准得到的第一趟排序结果为 (68,5,71,23,72,94,73) 。

在数据结构中,从逻辑上可以把数据结构分成___线性结构和非线性结构_____对线性表进行二分查找时,要求线性表必须_____以顺序方式存储,且结点按关键字有序排序 一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是________108_________一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是__dceab 。

数组A[8][10]中,每个元素A 的长度为3个字节,从首地址SA 开始连续存放在存储器内,该数组按列存放时,元素A[4][7]的起始地址为_____ SA+180___。

数据结构复习提纲

数据结构复习提纲

1.数据元素是数据的基本单位,可有若干数据项组成,数据项是具有独立含义的最小标识单位,数据对象是具有相同性质的数据元素的集合,是数据的子集。

2.数据结构是带有结构的数据元素的集合,一般包括以下三方面内容:数据的逻辑结构、数据的存储结构、数据的运算①数据元素之间的逻辑关系,也称数据的逻辑结构,数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。

②数据元素及其关系在计算机存储器内的表示,称为数据的存储结构。

数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。

③数据的运算,即对数据施加的操作。

最常用的检索、插入、删除、更新、排序等。

3.数据的逻辑结构分类: 线性结构和非线性结构①线性结构:若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。

线性表是一个典型的线性结构。

栈、队列、串等都是线性结构。

②非线性结构:一个结点可能有多个直接前趋和直接后继。

数组、广义表、树和图等数据结构都是非线性结构。

4.数据的四种基本存储方法: 顺序存储方法、链接存储方法、索引存储方法、散列存储方法(1)顺序存储方法:该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。

通常借助程序语言的数组描述。

(2)链接存储方法:该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系由附加的指针字段表示。

通常借助于程序语言的指针类型描述。

(3)索引存储方法:该方法通常在储存结点信息的同时,还建立附加的索引表。

索引表由若干索引项组成。

若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引,稠密索引中索引项的地址指示结点所在的存储位置。

若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引稀疏索引中索引项的地址指示一组结点的起始存储位置。

索引项的一般形式是:(关键字、地址)关键字是能唯一标识一个结点的那些数据项。

数据结构期末复习要点

数据结构期末复习要点

数据结构期末复习要点第一章绪论1、数据结构主要包括哪三方面内容?2、什么是逻辑结构?什么是存储结构?两者有何关系?3、数据的逻辑结构主要分为哪几类?4、存储结构主要有那些方式?5、顺序存储方式是如何表示数据元素之间的关系?其存储地址一定连续吗?6、链式存储方式是如何表示数据元素之间的关系?其存储地址一定连续吗?7、逻辑结构与具体计算机有关吗?存储结构呢?8、什么是抽象数据类型?其主要特征是什么?9、算法与具体的计算机及计算机语言有关吗?10、算法与程序有何关联?11、算法分析主要从哪些方面考虑?12、常用算法复杂度的有哪些数量级别?(按递增排列)第二章线性表1、线性结构的逻辑关系是什么?2、顺序表是如何表示数据元素的逻辑关系的?3、顺序表如何定义数据类型?(计算存储地址)4、单链表带头结点与无头结点的操作比较有什么优势?举例说明。

5、单链表的操作特点是什么?单链表如何定义数据类型?6、循环链表的操作特点是什么?7、双向链表的操作特点是什么?双向链表如何定义数据类型?8、顺序表与链表比较各自的优缺点是什么?第三章栈、队列1、栈的操作原则是什么?2、两个栈共享空间时基本运算如何实现? (判断空或满的条件)3、递归与栈有何关系?递归算法有何优缺点?4、队列的操作原则是什么?5、顺序队列操作中的“假溢出”是什么?如何解决?6、循环队列是存储在循环链表中吗?7、循环队列的操作时如何判空、满以及求长度?8、栈和队列的共同点和不同点是什么?第四章串1、串的逻辑结构是什么?2、空串与空格串的区别是什么?3、两个串相等的充分必要条件是什么?4、什么是串的模式匹配?5、KMP改进算法的最大特点是什么?(求next[])第五章数组和广义表1、数组的逻辑结构是什么?2、数组的特点是什么?数组可以进行插入删除操作吗?3、数组通常以什么方式存储?多维数组存储常用哪两种排列方式?(计算存储地址)4、特殊矩阵的压缩存储基本思想是什么?5、对称矩阵、三角矩阵和对三角矩阵如何压缩存储?(画出压缩存储方式,计算存储地址)6、稀疏矩阵只需存储非零元素的值吗?(画出三元组表和十字链表的存储结构。

数据结构期末复习提纲47页PPT

数据结构期末复习提纲47页PPT

数据结构期末复习提纲
31、园日涉以成趣,门虽设而常关。 32、鼓腹无所思。朝起暮归眠。 33、倾壶绝余沥,窥灶不见烟。
34、春秋满四泽,夏云多奇峰,秋月 扬明辉 ,冬岭 秀孤松 。 35、丈夫志四海,我愿不知老。
61、奢侈是舒适的,否则就不是奢侈 。——CocoCha nel 62、少而好学,如日出之阳;壮而好学 ,如日 中之光 ;志而 好学, 如炳烛 之光。 ——刘 向 63、三军可夺帅也,匹夫不可夺志也。 ——孔 丘 64、人生就是学校。在那里,与其说好 的教师 是幸福 ,不如 说好的 教师是 不幸。 ——海 贝尔 65、接受挑战,就可以享受胜利的喜悦 。——杰纳勒 尔·乔治·S·巴顿

数据结构复习提纲。带所有答案

数据结构复习提纲。带所有答案

数据结构复习提纲一,选择题1.数据结构是指(A)。

A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(C)。

A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.设语句x++的时间是单位时间,则以下语句的时间复杂度为(B)。

for(i=1; i<=n; i++)for(j=i; j<=n; j++)x++;A.O(1)B.O(2n)C.O(n)D.O(3n)4.计算机内部数据处理的基本单位是(B)。

A.数据B.数据元素C.数据项D.数据库-------25.在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动A个元素。

A.n-i B.n-i+l C.n-i-1 D.i6. 线性表采用链式存储时,其地址___ D___。

A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以7.从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较__C个元素结点。

A.n/2 B.n C.(n+1)/2 D.(n-1)/2 8.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是D __。

A. p->next=s; s->prior=p;p->next->prior=s; s->next=p->next;B. s->prior=p; s->next=p->next;p->next=s; p->next->prior=s;C. p->next=s; p->next->prior=s;s->prior=p; s->next=p->next;D. s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;9.设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为A。

《数据结构》期末复习材料档

《数据结构》期末复习材料档

一、填空题1.数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。

2.数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

3.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

4. 一个算法的效率可分为时间效率和空间效率。

5.向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1个元素。

6.在顺序表中访问任意一结点的时间复杂度均为O(1),因此,顺序表也称为随机存取的数据结构。

7. 顺序表中逻辑上相邻的元素的物理位置必定相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

8.栈是一种特殊的线性表,允许插入和删除运算的一端称为栈顶。

不允许插入和删除运算的一端称为栈底。

而队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

9.向栈中压入元素的操作是先移动队首指针,后取出元素。

10. 不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。

11.设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第6次匹配成功。

12. 设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为8950。

13.三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的行下标、列下标和元素值。

14.求下列广义表操作的结果:(1)GetHead【((a,b),(c,d))】=== (a, b);(2)GetHead【GetTail【((a,b),(c,d))】】=== (c,d) ;(3)GetHead【GetTail【GetHead【((a,b),(c,d))】】】=== b ;(4)GetTail【GetHead【GetTail【((a,b),(c,d))】】】=== (d);15.设一棵完全二叉树有700个结点,则共有350 个叶子结点。

湖南大学数据结构考试重点

湖南大学数据结构考试重点

《数据结构》复习提纲一、基础知识 (2)二、应用 (5)三、算法 (5)四、题型及样题 (6)一、基础知识第1章绪论1.什么是数据结构,分类2.抽象数据类型的形式定义3.逻辑结构、物理结构(存储结构)4.时间复杂度第2章线性表、5.线性表的定义和术语6.线性表的存储结构✓顺序表✓链式表:线性链表(单链表)、循环链表、双向链表✓静态链表第3章栈和队列7.栈✓顺序栈✓链式栈8.队列✓顺序队列:循环队列✓链式队列第5章数组和广义表9.数组的特点10.数组的顺序表示11.二维数组的两种存储方式✓以列序为主序✓以行序为主序12.矩阵的压缩存储✓特殊矩阵✓稀疏矩阵(三元组表)13.广义表的定义✓表头,表尾✓表长,深度第6章树14.树的定义和术语15.二叉树的定义和术语16.满二叉树与完全二叉树17.二叉树的性质18.二叉树的存储✓顺序✓链式:二叉链表19.遍历二叉树✓先序遍历✓中序遍历✓后序遍历✓层次遍历20.线索、线索二叉树、线索链表✓LTag和Rtag的作用21.树的存储结构✓双亲表示法✓孩子表示法✓孩子兄弟表示法22.树与二叉树之间的转换23.树的遍历✓先根(对应二叉树的先序)✓后根(对应二叉树的中序)✓层次24.树的带权路径长度25.哈夫曼树(最优二叉树)26.前缀编码、哈夫曼编码第7章图27.图的定义和术语28.图的存储结构✓邻接矩阵✓邻接表29.图的遍历✓深度优先搜索(DFS,类似树的先根遍历)✓广度优先搜索(BFS,类似树的层次遍历)30.最小生成树:✓Prim算法✓Kruskal算法31.有向无环图32.AOV网和AOE网33.拓扑排序问题34.关键路径问题35.最短路径问题✓单源最短路径-Dijkstra算法✓多源最短路径-Floyd算法第9章查找36.静态查找表和动态查找表37.关键字、主关键字、次关键字38.平均查找长度39.静态查找表✓顺序表的查找✓有序表的查找:折半查找、折半查找判定树40.动态查找表✓二叉排序树✓平衡二叉树✓B树和B+树41.哈希函数、哈希地址、哈希表、冲突、同义词42.哈希函数的构造43.地址冲突的处理44.装填因子第10章内部排序45.排序方法的稳定性和时间复杂度46.插入排序✓直接插入排序✓希尔排序47.交换排序✓冒泡排序✓快速排序48.选择排序✓简单选择排序✓堆排序49.归并排序✓2-路归并排序50.基数排序二、应用1.分析简单程序段的时间复杂度2.利用栈进行表达式求值3.根据下标计算数组元素的存储位置4.求字符串的next值和nextval值。

数据结构复习题要点(整理版)

数据结构复习题要点(整理版)

第一章数据结构概述基本概念与术语1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。

2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。

(补充:一个数据元素可由若干个数据项组成。

数据项是数据的不可分割的最小单位。

)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。

(有时候也叫做属性。

)4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

(1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。

数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。

依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。

2.线性结构:结构中的数据元素之间存在“一对一“的关系。

若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。

3.树形结构:结构中的数据元素之间存在“一对多“的关系。

若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。

4.图状结构:结构中的数据元素存在“多对多”的关系。

若结构为非空集,折每个数据可有多个(或零个)直接后继。

(2)数据的存储结构:数据元素及其关系在计算机内的表示称为数据的存储结构。

想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。

逻辑结构可以映射为以下两种存储结构:1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系。

2.链式存储结构:借助指针表达数据元素之间的逻辑关系。

不要求逻辑上相邻的数据元素物理位置上也相邻。

数据结构期末复习资料

数据结构期末复习资料

数据结构复习资料第一章绪论1.1基本概念和术语1.数据是对客观事物的符号表示;数据元素是数据的基本单位,一个数据元素可由若干个数据项组成,数据项是数据的不可分割的最小单位;数据对象是性质相同的数据元素的集合,是数据的一个子集。

2.数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

3.A.数据结构的三要素:①数据的逻辑结构②数据的存储结构③数据的运算(算法)B.任何一个算法的设计取决于选定的逻辑结构,而算法的实现依赖于采用的存储结构4.数据的逻辑结构:①集合②线性结构③树型结构④图状结构或网状结构1.2算法和算法分析1.算法的五个特性:①有穷性②确定性③可行性④输入⑤输出2.时间复杂度:时间复杂度是指执行算法所需要的计算工作量空间复杂度:空间复杂度是指执行这个算法所需要的内存空间第二章线性表2.1线性表的顺序表示和实现1.线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。

2.优点:线性表的顺序存储结构是一种随机存取的存储结构3.顺序线性表插入:顺序线性表删除:4.线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(可连续,可不连续)5.对数据元素来说,除了存储其自身的信息之外,还需存储一个指示其直接后继的信息(存储位置),这两部分信息组成数据元素的存储映像,称为结点。

他包括两个域:其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。

指针域中存储的信息称为指针或域。

N个结点链结成一个链表,即为线性表的链式存储结构。

又由于此链表的每个结点中只包含一个指针域,故又称为线性链表或单链表。

6.链表的插入与删除7.双向链表的插入与删除第三章栈和队列3.1 栈1.栈是限定仅在表尾进行插入或删除操作的线性表。

因此,对栈来说,表尾端有其特殊含义,称为栈顶,相应的,表头端称为栈底。

不含元素的空表称为空栈。

2.栈又称为后进先出的线性表3.栈的进栈与出栈操作3.2队列1.队列是一种先进先出的线性表,它只允许在表的一段进行插入,而在另一端删除元素。

南昌航空大学 数据结构复习(有试题,有答案)

南昌航空大学 数据结构复习(有试题,有答案)

《数据结构》复习提纲第一章数据结构的概念及基本结构,数据结构在计算机中的表示方法及其存储结构算法的特性,会计算时间复杂度第二章线性表的顺序存储表示,掌握插入和删除操作,线性表的链式存储表示,掌握单链表的插入和删除操作第三章栈的定义及特点,栈的顺序存储表示队列的定义及特点,链队列的插入和删除,循环队列的判空判满条件第四章串的概念及常用操作,掌握模式串next函数的求法第五章特殊矩阵的存储表示,稀疏矩阵的三元组表示,会求广义表的头部和尾部第六章树的定义和基本概念,二叉树的性质,二叉树的链式存储结构――二叉链表二叉树的先序,中序,后序, 层次遍历操作会对二叉树进行先序,中序,后序线索化操作树的存储结构――-孩子兄弟表示法树,森林,二叉树三者之间的转换方法,以及它们遍历的对应关系掌握哈夫曼树的构造,会求树的带权路径长度WPL第七章图的定义和术语,图的邻接矩阵表示法,邻接表,逆邻接表掌握图的深度优先搜索算法,广度优先搜索算法最小生成树――普里姆算法和克鲁斯卡尔算法,会对AOV网进行拓扑排序会求AOE网的关键路径,关键活动第九章顺序查找表,有序表的折半查找,索引查找表及其平均查找长度ASL二叉排序树的建立和删除操作,会计算其平均查找长度ASL掌握将二叉排序树转换成平衡二叉树的旋转处理方法,哈希表的概念,掌握哈希函数的构造方法――除留余数法掌握处理冲突的方法――线性探测再散列及平均查找长度ASL――二次探测再散列及平均查找长度ASL第十章直接插入排序,希尔排序,快速排序,简单选择排序,堆排序,归并排序会写上述排序算法每趟排序的结果,并对其进行排序性能分析(稳定性,时间复杂度等)期末考试题型:选择题,填空题,综合题练习题一、单选题1.一个栈的输入序列为1,2,3,4,下面哪一个序列不可能是这个栈的输出序列?(c)A. 1,3,2,4B. 2,3,4,1C. 4,3,1,2D. 3,4,2,12.下列排序方法中,关键字的比较次数与记录的初始排列状态无关?( c )A. 直接插入排序B. 起泡排序C. 快速排序D. 直接选择排序3.对n个记录的文件进行二路归并排序,总的时间代价为( d)A. O(nlogn)B. O(n2)C. O(logn)D. O(n)4.若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是(b )A. 9B. 11C. 12D. 不确定5.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行(d)A.q一>next=p一>next;p一>next=q;B.p一>next=q一>next;q=p;C.q一>next=p一>next;p一>next=q;D.p一>next=q一>next; q一>next=p;6.广义表A=(a,b,(c,d),(e,(f,g))),则式子Head(Tail(Head(Tail(Tail(A)))))的值为 d ;A.(g) B.(d) C.c D.d7. 直接插入排序在最好情况下的时间复杂度为(d)。

2012级数据结构期末试题提纲

2012级数据结构期末试题提纲

数据结构期末复习提纲(2012级)A、总体要求:1、掌握数据结构的基本概念、基本原理和基本方法。

2、掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度和空间复杂度的分析。

3、能够运用数据结构的基本原理和方法进行问题的分析与求解,具备采用C语言和C++语言设计与实现算法的能力。

一、基本概念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、图的连通性、连通图、连通分量的概念。

26、有向无环图的概念及特点。

27、查找、查找表、关键字的概念。

28、顺序查找、折半查找、分块索引查找的概念。

29、二叉排序树和平衡二叉树的定义及特点,平衡因子的概念。

30、B_树的定义及存储结构特点。

31、哈希函数、哈希表、哈希冲突、哈希查找的概念。

32、哈希表装填因子的定义及作用。

33、内部排序、外部排序、排序方法、传统排序和优化排序的概念。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构期末复习提纲(2012级)A、总体要求:1、掌握数据结构的基本概念、基本原理和基本方法。

2、掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度和空间复杂度的分析。

3、能够运用数据结构的基本原理和方法进行问题的分析与求解,具备采用C语言和C++语言设计与实现算法的能力。

一、基本概念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、图的连通性、连通图、连通分量的概念。

26、有向无环图的概念及特点。

27、查找、查找表、关键字的概念。

28、顺序查找、折半查找、分块索引查找的概念。

29、二叉排序树和平衡二叉树的定义及特点,平衡因子的概念。

30、B_树的定义及存储结构特点。

31、哈希函数、哈希表、哈希冲突、哈希查找的概念。

32、哈希表装填因子的定义及作用。

33、内部排序、外部排序、排序方法、传统排序和优化排序的概念。

34、希尔排序、快速排序、堆排序、归并排序、基数排序的概念。

35、排序方法的稳定性概念。

二、数据结构的基本操作算法1、顺序表与单链表的创建、查找、插入、删除、遍历操作算法。

2、顺序栈的创建、初始化、取栈顶元素、出栈、入栈操作算法。

3、顺序队列和循环队列的创建、初始化、取队头元素、出队、入队操作算法。

4、二叉树的先序、中序、后序遍历的递归算法。

5、中序线索二叉树的创建和遍历操作算法。

6、树和森林的孩子兄弟链表结构的先序和后序遍历操作算法。

7、图的邻接矩阵和邻接表结构的创建操作算法。

8、图的深度优先和广度优先遍历算法。

9、有序顺序表的折半查找算法。

10、二叉排序树的创建、查找、插入、删除算法。

11、传统的插入、选择、交换排序算法。

12、一趟快速排序、归并排序的算法。

三、基本方法1、简单程序的算法时间复杂度和空间复杂度的分析。

2、比较顺序表与链表、单链表、双向链表、循环链表的应用特点。

3、顺序栈的简单应用。

4、循环队列和双端队列的特点及简单应用。

5、二维、三维数组的按行、按列展开的地址计算及转换。

6、二叉树基本性质的应用及简单计算。

7、已知二叉树的遍历,求二叉树的形态。

8、已知二叉树,画出线索二叉树。

9、森林与二叉树的转换方法。

10、哈夫曼树的构造和编码方法。

11、图的邻接矩阵和邻接表结构及逆邻接表结构的转换方法。

12、连通分量、强连通分量的求解方法。

13、深度优先和广度优先遍历最小生成树的求解方法。

14、最小生成树的求解方法。

15、应用栈或队列的拓扑排序的求解方法。

16、关键路径的求解方法。

17、迪杰斯特拉求解单源最短路径的方法。

18、判定树的构造方法及平均查找长度的计算。

19、平衡二叉树的构造方法、平衡因子的计算。

20、线性探测再散列和链地址法解决冲突的哈希表构造方法,并计算平均查找长度。

21、B_树的构造和查找方法。

22、希尔排序、快速排序、堆排序、归并排序、基数排序的方法。

23、排序方法的时间性能、空间性能及稳定性的比较。

四、算法应用设计1、有序顺序表应用,如:合并、查找、排序、消除重复元素等。

2、链表应用,如:链表的合并、排序、查找、删除等。

3、二叉链表二叉树的遍历应用,如:查找、求高度和宽度等。

4、三叉链表的二叉树的非递归遍历算法。

5、图的邻接矩阵和邻接表结构及逆邻接表结构的转换算法。

6、图的深度优先和广度优先遍历的应用算法,如:查找、求解通路和最短路径等。

7、有向无环图的拓扑排序的应用算法。

8、习题集算法例题举例:2.15、2.20、2.29、2.37、6.39、6.41、6.44、6.48、6.52、7.22、7.27、7.34、7.35B、试题举例:数据结构试题(2011级)一、单选题(每小题2分)1.抽象数据类型ADT的三个组成部分是A.数据对象、数据关系和基本操作B.数据元素、逻辑结构和存储结构C.数据项、数据元素和数据类型D.数据元素、数据结构和数据类型2. 在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是A. 对顺序表中元素进行排序B. 插入第i个元素C. 删除第i个元素D. 访问第i个元素的前驱3.设p指向单链表中的一个结点,s指向单链表表外待操作的结点,则下述程序段的功能是:s->next=p->next; p->next=s; t=p->data; p->data=s ->data; s->data=t; A.删除结点pB.插入结点sC.在结点p之后插入结点sD.结点p与插入结点s的数据域互换4.如果入栈序列是1,3,5,…,97,99,且出栈序列的第1个元素为99,则出栈序列中第30个元素是A.39 B.41C.43 D.455.用一个大小为1000的数组来实现循环队列,当前的队头和队尾指针分别为4和996,若要达到队列满的条件,可以继续入队的元素个数是A.5 B.6C.7 D.86.多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为A.数组的元素处在行和列两个关系中B.数组的元素必须从左到右顺序排列C.数组的元素之间存在次序关系D.数组是多维结构,内存是一维结构7. 已知一棵含50个结点的二叉树中只有一个叶子结点,则该二叉树与所对应的孩子兄弟链表表示的二叉树的高度相比A. 前者比后者低B. 前者比后者高C. 前者与后者相同D. 不易确定8. 假设一棵完全二叉树中的第6层上有24个叶子结点,则该二叉树的结点个数最多为A. 55B.79C. 81D.1279.设某棵二叉树的中序遍历序列为ABCDE,后序遍历序列为BADEC,则该二叉树的层次遍历序列为A.BADCE B.BCDAEC.CAEBD D.CBDAE10.如果某图的邻接矩阵是非对称矩阵,则此图一定不.是A. 有环图B. 有向无环图C. 强连通图D. 上述答案有错11. 若一个具有N个顶点和K条边的无向图(N>K)是一个森林,则该森林的数目一定是A.K B.NC.N-K D.112. 已知哈希表的存储空间为T[0..18],哈希函数H(key)= key%17,并用线性探测再散列法处理冲突。

哈希表中已插入下列关键字:T[5]=39,T[6]=57和T[7]=7,则下一个关键字23插入的位置是A. T[2]B. T[4]C. T[8]D. T[10]13.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字为w的过程中,先后进行比较的关键字依次为A.f,r,s,t B.f,s,g,qC.g,q,s,t D.g,d,q,s14.对关键字序列(5,1,4,3,7)进行堆排序时,输出第2个元素后的系列结果为A.(1,3,4,5,7) B.(7,3,5,4,1)C.(1,4,3,5,7) D.(7,4,5,3,1)15.下列排序算法中,时间复杂度不受数据初始状态影响,恒为0(nlogn)的是A. 归并排序B. 冒泡排序C. 直接选择排序D. 快速排序二、应用题(每小题6分)16. 双端队列是一种插入和删除仅在线性表的两端都可进行的线性表。

若允许一端进行插入和删除,另一端只允许删除的双端队列为输入受限的双端队列。

假设输入序列为1,2,3,4。

双端队列的左端为单输入端。

试求:(1)画出输入受限的双端队列的示意图。

(2)给出单输入端的输出端口不可能得到的输出序列。

(至少5种)17.试求:(1(2)说明在非递归且不使用栈的中序遍历中,Parent域的作用。

18.已知一个无向带权图的边结点结构为(顶点1,顶点2,权值),顶点集V和边集E分别为:V={1,2,3,4,5};E={<1,2,2>,<1,4,6>,<2,3,8>,<2,4,3>,<3,5,5>,<3,4,2>,<4,5,9>}。

试求:(1)画出该图的邻接矩阵存储结构示意图。

(2)采用普利姆算法,求最小生成树,画出求解过程,给出最小代价的结果。

19.已知一组初始记录关键字序列为(3,9,51,8,4,7,2,52)。

试求:(1)给出该序列的快速排序的前三趟结果。

(2)举例说明快速排序的不稳定性。

20. 已知一组初始记录关键字序列为(35,20,33,48,59,47,62,50,48)。

其哈希函数为H(key)=key%13,处理冲突的方法为链地址法。

试求:(1)设计哈希表。

(2)在等概率查找时查找成功的平均查找长度。

三、算法阅读与分析题(本题10分)已知SqList为顺序表类型,阅读下列算法,回答问题。

void Sq_F(SqList &L {1. for(i=j=0;i<L.length;i++){2. if(L.elem[i]>=0){3. if(i!=j) //注释(1)4. L. elem [j]= L.elem[i];5. j++; //注释(2)6. }//if7. }//for8. L.length=j;9. }// Sq_F试求:(1)说明算法的功能。

(2)在语句3和语句5后面加上注释。

(3)若初始顺序表L=(19,-8,49,-56,-10,10,0,20,-50),给出算法执行后L 的结果。

四、算法设计题(本题10分)已知LinkList为单链表类型,L为带头结点的单链表的头指针。

指针p为当前访问的结点指针,pre为p的前驱结点指针。

结点Lnode的结构为(data,next)。

设计算法,从任意给定位置开始,将指针p右边的k个结点置逆。

函数原型定义如下:void shift_right_k(LinkList &L, LinkList p,LinkList pre,int k)试求:(1)算法描述。

相关文档
最新文档