数据结构复习提纲

合集下载

数据结构复习提纲

数据结构复习提纲

《数据结构》复习提纲参考书:《数据结构》(C语言版)严蔚敏吴伟民编著清华大学出版社考试范围:第一章~第七章、第九章~第十章第1章绪论什么是数据结构;基本概念和术语,数据结构分类;抽象数据类型的表示和实现;逻辑结构、存储结构异同;算法和算法分析包括:算法、算法设计的要求、算法效率的度量、算法的存储空间需求第2章线性表线性表的类型定义,掌握基本概念。

线性表的顺序表示和实现线性表的链式表示和实现线性链表、循环链表、双向链表第3章栈和队列栈和队列的基本概念和基本操作栈抽象数据类型栈的定义栈的表示和实现栈的应用举例队列抽象数据类型队列的定义链队列——队列的链式表示和实现循环队列——队列的顺序表示和实现顺序表示和实现第4章串串类型的定义串的表示和实现定长顺序存储表示堆分配存储表示串的块链存储表示第5章数组和广义表数组的定义数组的顺序表示和实现矩阵的压缩存储特殊矩阵稀疏矩阵及三元组表示广义表的定义及其存储结构第6章树和二叉树掌握数和二叉树的基本概念和基本操作树的定义和基本术语二叉树二叉树的定义二叉树的性质二叉树的存储结构遍历二叉树树和森林树的存储结构森林与二叉树的转换树和森林的遍历赫夫曼树及其应用第7章图图的定义和术语图的存储结构数组表示法邻接表十字链表邻接多重表图的遍历深度优先搜索广度优先搜索图的连通性问题无向图的连通分量和生成树最小生成树有向无环图及其应用拓扑排序关键路径最短路径第9章查找静态查找表顺序表的查找有序表的查找索引顺序表的查找动态查找表二叉排序表和平衡二叉树B_树和B+树哈希表第10章内部排序了解、掌握各种排序方法的大致思路插入排序直接插入排序其它插入排序希尔排序快速排序选择排序简单选择排序树形选择排序堆排序C语言考试大纲C语言程序设计的考试内容一、C语言程序的结构1.程序的构成,main函数和其他函数。

2.头文件、数据说明、函数的开始和结束标志以及程序中的注释。

3.源程序的书写格式。

4.C语言的风格。

(完整word版)数据结构复习提纲

(完整word版)数据结构复习提纲

数据结构复习提纲复习内容:基本概念掌握:数据结构,逻辑结构,存储结构;数据类型;算法;T(n),S(n)的理解。

要学习的数据结构定义形式:n(n〉=0)个数据元素的有限集合.将约束:1、数据元素本身.2、数据元素之间的关系。

3、操作子集。

大多有两种存储(表示、实现)方式:1、顺序存储。

2、链式存储.一、线性结构:1、线性表:n(n〉=0)个相同属性的数据元素的有限序列。

12种基本操作.顺序表:9种基本操作算法实现.单链表:11种基本操作算法实现。

(重点:插入、删除)顺序表与单链表之时间性能、空间性能比较.循环链表:类型定义与单链表同。

算法实现只体现在循环终止的条件不同。

双向链表:重点插入、删除算法。

2、操作受限的线性表有:栈、队列。

栈:顺序栈;链栈(注意结点的指针域指向)。

(取栈顶元素、入栈、出栈)队列:循环队列(三个问题的提出及解决);链队列(注意头结点的作用).(取队头元素、入队、出队。

链队列中最后一个元素出队)3、数据元素受限的线性表有:串、数组、广义表。

串:定长顺序存储;堆分配存储.块链存储(操作不方便)数组:顺序存储。

特殊矩阵的压缩存储;稀疏矩阵(三元组表示、十字链表)广义表:长度、深度.取表头(可以是原子也可以是子表);取表尾(肯定是子表)。

链式存储。

二、树型结构:1、树:n(n>=0)个数据元素的有限集合.这些数据元素具有以下关系:……。

(另有递归定义。

)术语;存储(双亲表示、孩子表示、孩子双亲表示、孩子兄弟表示)。

2、二叉树:n(n〉=0)个数据元素的有限集合。

这些数据元素具有以下关系:……。

(另有递归定义)5个性质(理解、证明;拓展)。

遍历二叉树(定义、序列给出、递归算法、非递归算法);遍历二叉树应用:表达式之前序表达式、后序表达式、中序表达式转换。

线索二叉树(中序线索二叉树)。

树森林与二叉树的转换。

树与森林的遍历.赫夫曼树及其应用:定义、构造、赫夫曼编码。

三、图形结构:n(n〉=0)个数据元素的有限集合。

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

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

数据结构复习资料复习提纲知识要点归纳数据结构复习资料:复习提纲知识要点归纳一、数据结构概述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. 对未来数据结构的发展趋势的展望以上是数据结构复习资料的复习提纲知识要点归纳。

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

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

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

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

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

2010年复习提纲第一章数据、数据结构的概念;基本逻辑结构的种类;集合线性树形图状基本存储方式的种类;顺序链式散列索引算法、算法的时间复杂度以及其计算。

算法的五大特性:输入输出确定性有穷性有效性时间复杂度的计算:忽略常数与中间变量,循环套循环用乘法第二章线性表的概念;顺序存储和链接存储的线性表的数据结构、特性;顺序存储的特性:查找方便,不易扩充链接存储的特性:插入删除方便顺序存储和链接存储的线性表的基本算法:创建、插入、查找、删除等;链表的其他形式(带表头、循环、双向、双向循环等)的概念及基本算法(与一般链表的不同处)。

带表头:便于其后结点执行标准化操作循环:首尾相接双向:既可以查找前继又可以查找后继双向循环:结合以上两点链表逆转;第二章相关算法列举如下1.。

顺序线性表的插入Int sq_insert(int list[],int *p_n,int i,int x) { Int j;If(i<0||i>*p_n) return(1);If(*p_n==MAXSIZE) return(2);For(j=*p_n;j>I;j--)List[j]=list[j-1];List[i]=x;(*p_n)++;Return(0);} 2.顺序线性表的删除Int sq_delete(int list[],int *p_n,int i) {Int j;If(i<0||i>=*p_n) return(1);For(j=i+1;j<*p_n;j++)List[j-1]=list[j];(*p_n)--;Return(0);}3.链式线性表的创建NODE *create_link_list(int n){ int i;NODE *p,*q;NODE *p_head;if(n==0) return(NULL);p_head=new(NODE);p_head->data=-1;p=p_head;for(i=1;i<=n;i++){printf("请输入第%d个节点的值\n",i);q=new(NODE);scanf("%d",&(q->data));p->link=q;p=q;}q->link=NULL;return(p_head);/*返回的是假头*/ ※4.链式线性表的插入(i之后)Int insert(NODE* *p_head,int i,int a) { int n=0;NODE *p,*q,*r;p=*p_head;if(i<1) return(0);while((p!=NULL)&&(n<i)){If(p->data!=-1) n++;q=p;p=p->link;}r=new(NODE);r->data=a;r->link=q->link;q->link=r;}※5.链式线性表的删除int del(NODE* *p_head,int I) { NODE *p,*q;int n=0;p=*p_head;if(i<1) return(0);while((p!=NULL)&&(n<i)){If(p->data!=-1) n++;q=p;p=p->link;}if(p==NULL) return(0);q->link=p->link;delete(p);return(1);} 6.单链表的逆置NODE * reverse(NODE *head) {NODE *p,*q;P=head->next;Head->next=NULL;While(p){Q=p->next;p->next=head->next;head->next=p;p=q;}return(head);}7.试写一高效的算法,删除表中所有大于mink且小于maxk的元素Void Delete_between(int a[],int mink,int maxk){p=L;while(p->next->data<=mink) p=p->next;(本循环结束时p是最后一个不大于mink的元素)if(p->next)(如果还有比mink更大的元素){q=p->next;while(q->data<maxk) q=q->next;(本循环结束时q 是第一个不小于maxk 的元素)p->next=q;}}第三章栈与队列的概念;栈:只允许在一端进行插入和删除的线性表队列:只允许在一端进行插入,且只允许在另一端进行删除的线性表顺序栈和链栈的数据结构与基本算法;顺序队列(尤其是循环队列)和链队列的数据结构与基本算法;栈的应用算法;如何判断顺序栈的空与满、如何判断循环队列的空与满;判断顺序栈的空与满:若top的初始值是-1 则判空条件是if(top==-1) 判满条件是if(top==MAXN)若top的初始值是0 则判空条件是if(top==0) 判满条件是if(top==MAXN-1)判断循环队列的空与满{Head=0,tail=0;判断循环队列的空与满的条件都是if(head==tail)}中缀表达式与后缀表达式规则以及两者间的转换。

数据结构_(严蔚敏C语言版)_学习、复习提纲.

数据结构_(严蔚敏C语言版)_学习、复习提纲.

期末复习 第一章 绪论 复习1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。

2、算法分析的两个主要方面是空间复杂度和时间复杂度。

3、数据元素是数据的基本单位。

4、数据项是数据的最小单位。

5、数据结构是带结构的数据元素的集合。

6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。

基础知识数据结构算 法概 念逻辑结构 存储结构数据运算数据:计算机处理的信息总称 数据项:最小单位 数据元素:最基本单位数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。

概念:数据元素之间的关系 线性结构:一对一非线性结构 树:一对多 图:多对多顺序存储结构 链表存储结构 索引。

散列。

算法描述:指令的有限有序序列算法特性 有穷性 确定性 可行性 输入 输出 算法分析时间复杂度 空间复杂度第二章 线性表 复习1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针2、线性表采用顺序存储,必须占用一片连续的存储单元3、线性表采用链式存储,便于进行插入和删除操作4、线性表采用顺序存储和链式存储优缺点比较。

5、简单算法第三章 栈和队列 复习线性表顺序存储结构链表存储结构概 念基本特点基本运算定义逻辑关系:前趋 后继节省空间 随机存取 插、删效率低 插入 删除单链表双向 链表 特点一个指针域+一个数据域 多占空间 查找费时 插、删效率高 无法查找前趋结点运算特点:单链表+前趋指针域运算插入删除循环 链表特点:单链表的尾结点指针指向附加头结点。

运算:联接1、 栈和队列的异同点。

2、 栈和队列的基本运算3、 出栈和出队4、 基本运算第四章 串 复习栈存储结构栈的概念:在一端操作的线性表 运算算法栈的特点:先进后出 LIFO初始化 进栈push 出栈pop队列顺序队列 循环队列队列概念:在两端操作的线性表 假溢出链队列队列特点:先进先出 FIFO基本运算顺序:链队:队空:front=rear队满:front=(rear+1)%MAXSIZE队空:frontrear ∧初始化 判空 进队 出队取队首元素第五章 数组和广义表 复习串存储结构运 算概 念顺序串链表串定义:由n(≥1)个字符组成的有限序列 S=”c 1c 2c 3 ……cn ”串长度、空白串、空串。

数据结构复习提纲

数据结构复习提纲

复习提纲:第一章:1.数据结构的基本概念;2.数据结构的4类基本结构及其特性;3.存储结构的分类及特点;4.算法的时间复杂度计算;第二章:1.线性表的基本概念;2.线性表的顺序存储结构的特点和插入删除算法;3.顺序存储结构的应用;4.单循环链表的存储结构特点,链表空的判断方法、插入、删除结点算法实现,报数游戏算法实现;5.双链表的存储特点,插入、删除结点算法实现。

第三章:1.栈的特点、对同一序列根据栈的特点进行不同入栈、出栈操作所得结果的判断;栈的实现的相关操作;2.顺序栈的4各要素和相关操作关键语句;链栈的4个要素和相关操作关键语句;3.了解队列的特点和可执行的基本操作,并能做相关判断;4.顺序循环队列的队空、队满判断条件,入队、出队操作的相关关键语句;5.顺序循环队列中对同一序列根据队列进行不同的入队、出队操作后队头和队尾指针的变化判断。

第四章:1.串的定义、串长的定义和计算、子串个数计算(注意区分:子串与非空且不同于S本身的子串);2.串的模式匹配(区分BF算法和KMP算法),掌握使用KMP算法计算next数组的值,并且要求掌握匹配过程(BF和KMP的匹配过程不同!)。

前三章程序重点掌握作业四、作业五、作业六、作业八、作业九第五章:1.特殊矩阵的压缩存储地址计算,稀疏矩阵的压缩存储结构图。

2.广义表的定义、区分原子和子表,求表头和表尾,深度和层次计算,存储结构图绘制;3.提供一广义表,写出通过head()和tail()操作求出某个原子的表达式。

4.注意:取表头时即广义表的第一个元素,外面不再加括号;而取表尾时,要将除表头元素外的其他元素一起用圆括号括起来,即将原广义表去掉表头;第六章:1.树的定义和相关基本术语;2.树的表示和各种存储结构的表示;3.二叉树的定义和结点形态;4.熟练使用二叉树的性质进行相关计算;5.掌握提供边集画树及树的存储结构图并将树转换为二叉树;6.根据后序遍历和中序遍历的序列画出二叉树直观图,并给出其先序遍历的序列,画出线索二叉树存储结构图;7.根据二叉树的顺序存储结构图,画出二叉树及二叉链存储结构图,并给出该二叉树转换后的森林。

数据结构复习提纲

数据结构复习提纲

数据结构复习提纲第一章绪论1.基本术语:数据,数据元素,数据对象,数据结构及其分类。

2.什么是算法?算法的特性。

3.时间复杂度及其简单计算。

第二章线性表1.线性表的定义,线性表的存储结构常有哪几种?各有何优缺点?2.顺序表的类型说明及其基本操作算法的实现3.链表结构的类型说明及其基本操作算法的实现。

表空条件,申请结点,插入,删除操作语句。

第三章栈和队列1.栈的定义及其特点。

队列的定义及其特点。

2.顺序栈的类型说明及其算法实现。

栈空,栈满条件,入栈出栈操作语句。

3.循环队列的类型说明及其算法实现。

队空,队满条件,入队出队操作,计算队列的长度语句。

第五章数组与广义表1.二维数组的两种存储方式及地址计算。

2.矩阵的压缩存储,对称矩阵,三角矩阵的地址计算。

3.什么是稀疏矩阵?稀疏矩阵的两种存储结构,算法的实现。

4.广义表的定义。

广义表的两种存储结构,广义表的表头,表尾计算第六章树和二叉树1.树的概念与定义。

2.二叉树。

满二叉树,完全二叉树的定义,二叉树的性质及其证明。

3.二叉树的存储结构及其类型说明。

4.二叉树的三种遍历及其递归算法实现。

5.树的三种存储结构。

6.树,森林与二叉树的转换。

7.哈夫曼树的定义。

哈夫曼树的构造及其哈夫曼编码。

第七章图1.图的定义及其术语。

2.图的存储结构。

邻接表,邻接矩阵。

3.图的深度,广度遍历及其应用4.最小生成树的两种构造算法。

5.什么是AOV网?拓扑排序的定义及其方法。

6.求关键路径的算法及其计算。

7.从源点到其余各顶点的最短路径的算法及其计算。

8.各对顶点的最短路径的算法及其计算。

第九章查找1.顺序表的查找算法及其算法实现ASL计算。

2.有序表的查找算法及其算法实现。

ASL计算3.二叉排序树的定义,特点,构造及其查找算法的实现ASL 计算。

4.B-树的定义,插入,删除,构造。

5.哈希函数,哈希冲突的定义。

构造哈希函数的方法,解决冲突的方法。

6.给出哈希函数,哈希冲突的解决方法,构造哈希表ASL计算。

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

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

复习提纲第一章数据结构概述基本概念与术语(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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构复习提纲一、名词解释1、集合:一些可确定的可分辨的事物构成的整体。

2、数据:对客观事物的符合表示,在计算机科学中指所有能输入计算机中的并被计算机程序处理的符合总称。

3、数据元素:由若干个数据项组成的数据的基本单位。

4、数据项:数据的不可分割的最小单元。

5、关键码:在数据元素中起标识作用的数据项6、数据结构:相互之间存在一种或多种特定关系的数据元素的集合。

7、逻辑结构:结构定义中的数据元素之间的逻辑关系。

8、物理结构:数据结构在计算机中的表示。

9、算法有穷性:一个算法必须总是在执行有穷步后结束,且每步都可在有穷时间内完成10、算法确定性:算法中的每一条指令必须有确定的含义,且在任何条件下,算法只有唯一的一条执行路径。

(相同输入的相同结果)11、算法可行性:算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现得。

12、升序表:有限序列中的元素递增排列的线性表。

13、降序表:有限序列中的元素递减排列的线性表。

14、排序的稳定性:假设Ki=Kj(1<=i<=n,1<=j<=n,i!=j),且在排序前的序列中Ri领先去Rj,(即i<j),若在排序后的序列中Ri仍领先于Rj,则称所用的排序方法是稳定的。

15、小根堆:X1,X2,…,Xn,n个数,对任意的Xi,若X2i,X2i+1存在,如果满足Xi<=X2i且Xi<=X2i+1,则为小跟堆。

16、大根堆:X1,X2,…,Xn,n个数,对任意的Xi,若X2i,X2i+1存在,如果满足Xi>=X2i且Xi>=X2i+1,则为大跟堆。

17、栈:限定仅在表尾进行插入或删除操作的线性表。

18、队列:一种先进先出的线性表。

(在表的一端进行插入,在另一端删除元素)19、循环队列:将向量空间想象为一个首尾相接的圆环,存储在其中的队列称为循环队列。

20、串:由零个或多个字符组成的有限序列。

21、空串:具有零个字符的串。

22、子串:串中任意连续的字符组成的子序列。

23、对称矩阵:矩阵中元素满a[i][j]=a[j][i]的方阵。

24、稀疏矩阵:稀疏因子小于等于0.05的矩阵。

(m*n的矩阵中,由t个元素不为零,稀疏因子⊿=t/(m*n))25、三角矩阵:主对角线有一侧全为0的矩阵。

26、树中节点数:结点拥有的子树数。

27、树的度:树内各结点的度的最大值。

28、分支结点:度不为0的结点。

29、叶结点:度为0的结点。

30、满二叉树:深度为K且有2k-1个结点的二叉树。

31、完全二叉树:深度为K的、有N个结点的、当且仅当其每一个结点都与深度为K的满二叉树的结点一一对应的二叉树。

32、有序二叉树:结点带权,按左<根<右或右<根<左得顺序排列的二叉树。

33、平衡二叉树:|左子树的深度-右子树的深度|<=1的二叉树。

34、B-树:每个结点至少有m棵子树、若根结点不是叶子结点,则至少有两棵子树、除根之外的所有非终端结点至少有[m/2]棵子树、35、树的深度:树中节点的最大层次。

(根为第一层)36、树的宽度:树的某一层次上节点个数的最大值。

37、有向图:边有方向的图。

38、无向图:边无方向的图。

39、带权图:边带权的图。

40、连通图:任意两个顶点都连通的图。

41、顶点度:和该顶点想关联的边的个数。

42、顶点入度:有向图中到达顶点的边数;出度:有向图中,从顶点出发的边数。

43、图的生成树:去一些边后,成为无环的连通图。

44、最小生成树:权和最小的生成树。

45、广义表:表中元素可以是原子或是一个表的线性表。

46、查找表:由同一类型的数据元素构成的集合。

47、HASH表:在记录的存储位置和他的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。

48、冲突:对不同的关键字可能得到同一哈希地址。

49、内排序:是指待排序记录存放在计算机随机存储器中进行的排序过程。

50、外部排序:是指待排序记录的数据很大,以致内存一次不能容纳全部记录,在排序的过程中尚需对外存进行访问的排序过程。

51、拓扑排序:由一个集合上的偏序得到该集合上的一个全序。

52、循环链表:表中最后一个结点指针域指向头结点、形成一个环的链表。

二、回答问题1、数据结构的四种基本结构是什么?集合/线性结构/ 树形结构/ 图状结构或网状结构2、举例说明算法时间复杂度为:O(1)、O(n)、O(n2)、O(n3)、O(log2n)O (1) :x.y比较大小;O(n) :数组元素求和/求数组中最大元素;O(log2n) :有序表二分法查找;O(n2):二维数组求和;O(n3):矩阵乘法;3、举例说明算法中空间复杂度为:O(1)、O(n)、O(n2)O(1):简单定义int x;int y;O (n):int a[n];O(n2)”int a[n][n];4、线性表中的直接前驱,直接后继举例:线性表{a,b,c,d}a无直接前驱d 无直接后驱a 的直接后继为b5、线性链表中的结点的结构typedef struct node{int data;Struct node *next;}list,*llist;6、双向链表的结点结构typedef struct node{int data;Struct node *prior,*next;}list,*llist;7、双向链表中插入和删除结构例:在p前插入q①q->prior=p->prior②q->next=p;③p->prior->next=q;④p->prior=q;删除P①p->prior->next=p->next;②p->next->prior=p->prior;8、线性表的数组表示和链表表示的各自优缺点数组表示:可随机存取,不易于插入或删除;链表表示:便于插入或删除,不可随机存取。

9、什么是排序?什么叫稳定性排序?排序:将任意序列排列成按关键字有序的序列。

稳定性排序:在对某关键字排序后不会改变其他关键字的顺序。

10、排序的目的?(查找方便,实际应用需要。

)11、设入栈顺序为1,2,3,…,n,任给一个出栈顺序x1,x2,x3,…x n,判断其合理性。

合理,每一个元素即入即出。

12、排序的方法有哪些?(插入\ 快速\ 选择\归并\ 基数)13、数组定义中地址的计算:d=d0+(i*m+j)*l;d0:起始存储位置;i、j为元素位置;m为维数;l为各维长度。

14、证明二叉树性质3:n0=n2+1;证:n0为终端结点数,n2为度为2的结点数,设n1为度为1的结点数,x为边个数,则有:n0+n1+n2=x+1,x=n1+2*n2 ,解得:n0=n2+1.15、证明二叉树性质4:k=[lo g2n]+1;证:设二叉树深度为k,则有:2k-1<=n<2k, 即 k-1<=log2n<k∵k为整数,∴k=[log2n]+1. [log2n]向下取整. 16、HASH表中解决冲突的方法?1)开放定址2)再哈希法3)链地址法4)建立一个公共溢出区17、算法有哪些特性?(有穷性|确定性|可行性|输入|输出)三、图上作业1、快速排序的第一遍处理后的中间结果。

(升序排列)P27517,16,9,34,29,15,30,46,(),16,9,34,29,15,30,46,调出首个元素:17,空出位置;(),16,9,34,29,15,30,46,←从最后一个往前搜索,直至找到比第一个小的元素: 15;(15),16,9,34,29,(),30,46,将15 调出,填在首位置;→(15),16,9,34,29,(),30,46,从第二个往后搜索,直至找到17排在某两个元素间:9和34; (15),16,9,(17),29,(),30,46,调出 34,用 17补上;(15),16,9,(17),29,(34),30,46,将34补上空当,得到中间结果。

2、堆排序详细过程 P2793、表达式计算过程 2+3*(3-1) 出栈顺序:— → * → + ;结果:2 →6 →8 P524、循环队列中入队和出队算法P635、稀疏矩阵三元式表示————(行、列、值) P966、二叉树遍历 P1677、已知二叉树中序、后序,还原二叉树并求先序。

中序:CBDAFGE 后序:CDBGFEA 6、先序:ABDECFGHI 中序:DBEAGFIHC 后序:DEBGIHFCA8、树的二叉树表示(根→左子树→右子树)9、有序二叉树的插入节点和删除节点的操作有序二叉树:结点带权,按左<根<右或右<根<左得顺序排列。

插入或删除要满足以上条件: 10、图的邻接表(下图)11、图的深度优先遍历(下图):1→2→4→6→5→3→7→8 先跟遍历12、图的广度优先遍历(上图):1→2→3→4→5→7→8→6 按层次遍历 13、广义表的表示 (上图) P106L=(abDEfgHij ), D=(deKm ),E=(fg ),H=(i (j )),K=(mn (o )); 14、最小生成树的kruskal 法(从边开始) 15、最小生成树的priml 法(从点开始)16、构造huffman 树和huffman 编码 P144Huffman 树:以权最小的两个边向上构造,之后加上的边的权递增。

Huffman 编码:唯一译码,独立识别。

17、求出工程网络中的关键路径,eet[i]、let[i]计算P183 工程网络中的最长路径计算。

相关文档
最新文档