数据结构复习要点

合集下载

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

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

数据结构复习要点(整理版)数据结构复习要点(整理版)数据结构是计算机科学中非常重要的一门课程,它涉及到各种数据的存储和组织方式,对于编程和算法的理解都至关重要。

本文将整理常见的数据结构复习要点,帮助读者回顾和加深对数据结构的理解。

一、线性结构线性结构是最简单的数据结构之一,它包括线性表、栈、队列等。

线性表是具有相同数据类型的一组元素的有限序列,它可以分为顺序表和链表。

顺序表是一种用连续的存储单元依次存储线性表的元素的数据结构,而链表则是通过每个元素中存储下一个元素的地址来实现线性关系。

栈和队列是线性结构的特殊形式。

栈是一种先进后出(LIFO)的数据结构,它可以通过顺序栈或链栈来实现。

队列是一种先进先出(FIFO)的数据结构,它可以通过顺序队列或链队列来实现。

二、树形结构树形结构是一种非线性结构,它具有层次关系,由节点和边组成。

常见的树形结构包括二叉树、二叉搜索树、平衡二叉树和哈夫曼树。

二叉树是每个节点最多只有两个子节点的树,它可以是空树、只有一个根节点的树或者一个根节点连接两棵不相交的二叉树。

二叉搜索树是一种特殊的二叉树,它的左子树上所有节点的值小于根节点的值,右子树上所有节点的值大于根节点的值。

平衡二叉树是一种特殊的二叉搜索树,它的左子树和右子树的高度差不超过1,这样可以保证在最坏情况下的查找效率。

哈夫曼树是一种特殊的二叉树,它的叶子节点代表字符,而各节点的权值表示字符出现的频率,通过构造哈夫曼树可以实现数据的压缩编码。

三、图形结构图形结构是一种包含节点和边的非线性数据结构,它由顶点集合和边集合组成。

图形结构可以分为无向图和有向图,每个节点可以有一个或多个相邻节点。

图形结构的常见算法有深度优先搜索(DFS)和广度优先搜索(BFS)。

深度优先搜索是一种通过递归或栈实现的搜索算法,它先访问起始节点的一个邻接节点,再依次访问该节点的未被访问过的邻接节点,直到所有节点都被访问过。

广度优先搜索则是一种通过队列实现的搜索算法,它先访问起始节点的所有邻接节点,再依次访问这些邻接节点的邻接节点,以此类推,直到所有节点都被访问过。

数据结构期末复习重点知识点总结

数据结构期末复习重点知识点总结

数据结构期末复习重点知识点总结一、数据结构概述数据结构是计算机科学中一门关于数据组织、存储和管理的学科。

它涉及到各种数据类型和它们之间的关系,以及对这些数据类型进行有效操作和处理的算法。

二、基本数据结构1. 数组- 数组是一种线性数据结构,用于存储相同类型的数据元素。

- 数组的特点是随机访问和连续存储。

- 数组的插入和删除操作需要移动其他元素,时间复杂度为O(n)。

2. 链表- 链表是一种线性数据结构,通过节点之间的指针链接来组织数据。

- 链表的特点是插入和删除操作简单,时间复杂度为O(1)。

- 链表分为单链表、双向链表和循环链表等不同类型。

3. 栈- 栈是一种具有后进先出(LIFO)特性的数据结构。

- 栈的操作主要包括压栈(Push)和弹栈(Pop)两个操作。

- 栈常用于表达式求值、递归算法的实现等场景。

4. 队列- 队列是一种具有先进先出(FIFO)特性的数据结构。

- 队列的操作主要包括入队(Enqueue)和出队(Dequeue)两个操作。

- 队列常用于实现缓冲区、消息队列等场景。

5. 树- 树是一种非线性的数据结构,由节点和边组成。

- 树的节点具有层级关系,由根节点、子节点和叶节点等组成。

- 常见的树结构有二叉树、红黑树、B树等。

6. 图- 图是一种非线性的数据结构,由节点和边组成。

- 图的节点之间可以有多对多的关系。

- 图的遍历方式有深度优先搜索(DFS)和广度优先搜索(BFS)。

三、常见的数据结构算法1. 排序算法- 冒泡排序、插入排序、选择排序等简单但效率较低的排序算法。

- 快速排序、归并排序、堆排序等高效的排序算法。

- 基数排序、桶排序等适用于特定场景的排序算法。

2. 查找算法- 顺序查找、二分查找等常用的查找算法。

- 树结构相关的查找算法,如二叉搜索树、红黑树等。

- 哈希查找、索引查找等高效的查找算法。

3. 图算法- Dijkstra算法、Bellman-Ford算法等最短路径算法。

数据结构考研复习重点归纳

数据结构考研复习重点归纳

数据结构考研复习重点归纳数据结构是计算机科学中非常重要的一门基础课程,考研复习数据结构时,需要重点掌握的内容有以下几个方面。

1.线性表:线性表是数据结构中最基本的一种结构,常见的线性表有数组、链表和栈等。

考生需要掌握线性表的定义、插入、删除、查找等基本操作,并能够分析它们的时间复杂度。

2.树:树是一种非常重要且常见的数据结构,它具有分层结构和层次关系。

其中,二叉树是最简单也是最基本的一种树结构,树的遍历(如前序遍历、中序遍历和后序遍历)是树算法中的重要内容。

此外,还要了解一些特殊的树结构,如平衡树和B树等。

3.图:图是由节点和边组成的一种数据结构,它是一种非常灵活的结构,常用来表示各种实际问题中的关系。

在考研复习中,需要掌握图的基本概念(如顶点和边)、图的存储结构(如邻接矩阵和邻接表)以及图的遍历算法(如深度优先和广度优先)等。

4.查找和排序:在实际问题中,经常需要查找和排序数据。

查找算法(如顺序查找、二分查找和哈希查找)和排序算法(如冒泡排序、插入排序和快速排序)是数据结构中常见的算法,考生需要熟练掌握这些算法的原理和实现方法。

此外,还要了解一些高级的查找和排序算法,如二叉查找树和归并排序等。

5.散列表:散列表(也称哈希表)是一种特殊的数据结构,它利用散列函数将数据映射到一个固定大小的数组中。

散列表具有快速的查找和插入操作,常用于实现字典和数据库等应用。

在考研复习中,需要了解散列表的原理和实现方法,以及处理冲突的方法,如链地址法和开放地址法。

6.动态规划:动态规划是一种解决问题的数学方法,也是一种重要的算法思想。

在考研复习中,需要掌握动态规划的基本原理和解题思路,以及常见的动态规划算法,如背包问题和最长公共子序列等。

7.算法复杂度分析:在考研复习中,需要有一定的算法分析能力,能够对算法的时间复杂度和空间复杂度进行分析和估算。

此外,还要能够比较不同算法的效率,并选择合适的算法来解决实际问题。

除了以上重点内容,考生还要注意掌握一些基本的编程知识,如指针、递归和动态内存分配等。

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

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

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

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

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

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

数据结构考研复习要点

数据结构考研复习要点

考研题型包括:简答题;方法选择(分析);构造题;算法题。

第一章绪论1. 数据结构的基本概念:数据、数据元素、数据对象、数据结构2. 抽象数据类型:数据对象、逻辑关系、一组操作。

ADT的特点:数据抽象、信息隐蔽3. 数据结构三要素:数据元素间的逻辑关系、物理存储和一组操作。

元素间的逻辑关系:集合、线性、树、图元素在计算机内存中的存储结构:顺序、非顺序4. 算法的定义:规则的有限集合,为了解决某个特定问题而规定的一系列基本操作。

算法特性:有限性、确定性、可行性、输入、输出算法设计目标:正确性、可读性、鲁棒性、高效率低存储5. 算法性能评价:时间和空间算法时间复杂度:T(n)=O(f(n))。

它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。

其中f(n)是问题规模n的某个函数。

求解算法的时间复杂度的具体步骤是:⑴找出算法中的基本语句;⑵计算基本语句的执行次数的数量级;保留基本语句执行次数的函数中的最高次幂,忽略所有低次幂和最高次幂的系数。

⑶用大Ο记号表示算法的时间性能。

将基本语句执行次数的数量级放入大Ο记号中。

O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < { O(2^n) < O(n!) < O(n^n) }【例】分析下面各算法的时间复杂度算法1:int fact(int n){ if (n<=1) return 1;return n*fact(n-1);}算法2:i=l;while (i<n){for(j=l;j<=n;j++)x=x+l;i=i*2;}算法3:for(i=l;i<=n;i++){ j=l;while (j<=i){x+=l; j++;}}算法:4void sort(int b[],int n){ int i, j, k;for (i=0; i<n-1; i++){ k = i;for (j=i+1; j<n; j++)if (b[k] > b[j]) k = j;x = b[i]; b[i] = b[k]; b[k] = x;}}算法5void add(int n){ int i = 0, s = 0;while (s<n){ i++;s = s + i;}}设while循环语句执行次数为T(n),则算法6void hanoi(int n, char a, char b, char c){ if (n==1) printf("move %d disk from %c to %c \n", n, a, c);else{ hanoi(n-1, a, c, b);printf("move %d disk from %c to %c \n", n, a, c);hanoi(n-1, b, a, c);}}算法7:void PreOrder(BiTree T){ if (T){ v isit(T->daata)PreOrder(T->lchild);PreOrder(T->rchild);}}算法空间复杂度:空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。

数据结构复习要点(汇总版)

数据结构复习要点(汇总版)

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

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

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

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

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

(有时候也叫做属性。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据结构 复习重点

数据结构 复习重点

数据结构复习重点谁让我找到你们了.第一章1.数据是信息的载体,它能够被计算机识别、存储和加工处理。

2.数据元素是数据的基本单位。

有些情况下,数据元素也称为元素、结点、顶点、记录。

3.数据结构指的是数据之间的相互关系,即数据的组织形式。

一般包括三个方面的内容:①数据元素之间的逻辑关系,也称为数据的逻辑结构;②数据元素及其关系在计算机存储器内的表示,称为数据的存储结构;③数据的运算,即对数据施加的操作。

4.数据类型是一个值的集合以及在这些值上定义的一组操作的总称。

按"值"是否可分解,可将数据类型划分为两类:①原子类型,其值不可分解;②结构类型,其值可分解为若干个成分。

5.抽象数据类型是指抽象数据的组织和与之相关的操作。

可以看作是数据的逻辑结构及其在逻辑结构上定义的操作。

6.数据的逻辑结构简称为数据结构。

数据的逻辑结构可分为两大类:①线性结构(~的逻辑特征是若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继);②非线性结构(~的逻辑特征是一个结点可能有多个直接前趋和直接后继)。

7.数据存储结构可用四种基本的存储方法表示:①顺序存储方法(该方法是把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。

由此得到的存储表示称为顺序存储结构);②链接存储方法(该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。

由此得到的存储表示称为链式存储结构);③索引存储方法(该方法通常是在存储结点信息的同时,还建立附加的索引表);④散列存储方法(该方法的基本思想是根据结点的关键字直接计算出该结点的存储地址)。

8.非形式地说,算法是任意一个良定义的计算过程,它以一个或多个值作为输入,并产生一个或多个值为输出。

因此,一个算法是一系列将输入转换为输出的计算步骤。

9.求解同一计算问题可能有许多不同的算法,究竟如何来评价这些算法的好坏以便从中选出较好的算法呢?选用的算法首先应该是"正确"的。

数据结构复习提纲

数据结构复习提纲

数据结构复习提纲一、线性表线性表是最基本的数据结构之一,它是具有相同数据类型的 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、各种排序算法的时间复杂度、空间复杂度和稳定性比较。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章 数据结构基本概念 1、基本概念:理解什么是数据、数据对象、数据元素、数据结构、数据的逻辑结构与物理 结构、逻辑结构与物理结构间的关系。 2、面向对象概念:理解什么是数据类型、抽象数据类型、数据抽象和信息隐蔽原则。了解 什么是面向对象。由于目前关于这个问题有许多说法,我们采用了一种最流行的说法,即 Coad 与 Yourdon 给出的定义:面向对象 = 对象 + 类 + 继承 + 通信。 要点: ·抽象数据类型的封装性 ·面向对象系统结构的稳定性 ·面向对象方法着眼点在于应用问题所涉及的对象 3、数据结构的抽象层次:理解用对象类表示的各种数据结构 4、算法与算法分析:理解算法的定义、算法的特性、算法的时间代价、算法的空间代价。 要点:·算法与程序的不同之处需要从算法的特性来解释 ·算法的正确性是最主要的要求 ·算法的可读性是必须考虑的 ·程序的程序步数的计算与算法的事前估计 ·程序的时间代价是指算法的渐进时间复杂性度量
第十章 索引与散列 1、线性索引: 要点: ·密集索引、稀疏索引、索引表计算 ·基于属性查找建立倒排索引、单元式倒排表 2、动态搜索树
要点: ·平衡的 m 路搜索树的定义、搜索算法 ·B 树的定义、B 树与平衡的 m 路搜索树的关系 ·B 树的插入(包括结点分裂)、删除(包括结点调整与合并)方法 ·B 树中结点个数与高度的关系 ·B+树的定义、搜索、插入与删除的方法 3、散列表 要点: ·散列函数的比较 ·装填因子 a 与平均搜索长度的关系,平均搜索长度与表长 m 及表中已有数据对象个数 n 的关系 ·解决地址冲突的(闭散列)线性探查法的运用,平均探查次数的计算 ·线性探查法的删除问题、散列表类的设计中必须为各地址设置三个状态 ·线性探查法中的聚集问题 ·解决地址冲突的(闭散列)双散列法的运用,平均探查次数的计算 ·双散列法中再散列函数的设计要求与表长 m 互质,为此 m 设计为质数较宜 ·解决地址冲突的(闭散列)二次散列法的运用,平均探查次数的计算 ·注意:二次散列法中装填因子 a 与表长 m 的设置 ·解决地址冲突的(开散列)链地址法的运用,平均探查次数的计算
第八章 图 1、图:图的定义与图的存储表示 要点: ·邻接矩阵表示(通常是稀疏矩阵) ·邻接表与逆邻接表表示 ·邻接多重表(十字链表)表示 2、深度优先遍历与广度优先遍历 要点: ·生成树与生成树林的定义
·深度优先搜索是个递归的过程,而广度优先搜索是个非递归的过程 ·为防止重复访问已经访问过的顶点,需要设置一个访问标志数组 visited 3、图的连通性 要点: ·深度优先搜索可以遍历一个连通分量上的所有顶点 ·对非连通图进行遍历,可以建立一个生成森林 ·对强连通图进行遍历,可能建立一个生成森林 ·关节点的计算和以最少的边构成重连通图 4、最小生成树 要点: ·对于连通网络、可用不会构成环路的权值最小的 n-1条边构成最小生成树 ·会画出用 Kruskal 算法及 Prim 算法构造最小生成树的过程 5、单源最短路径 要点: ·采用逐步求解的方式求某一顶点到其他顶点的最短路径 ·要求每条边的权值必须大于零 6、活动网络 要点: ·拓扑排序、关键路径、关键活动、AOE 网 ·拓扑排序将一个偏序图转化为一个全序图。 ·为实现拓扑排序,要建立一个栈,将所有入度为零的顶点进栈 ·关键路径的计算
第七章 集合与搜索
1、集合的概念:集合的基本运算、集合的存储表示 要点: ·用位数组表示集合时集合基本运算的实现 ·用有序链表表示集合时集合基本运算的实现 2、并查集:并查集定义、并查集的三种基本运算的实现 3、基本搜索方法 要点: ·对一般表的顺序搜索算法(包括有监视哨和没有监视哨) ·对有序顺序表的顺序搜索算法、用判定树(即扩充二叉搜索树)描述搜索,以及平均搜索 长度(成功与不成功)的计算。 ·对有序顺序表的折半搜索算法、用判定树(即扩充二叉搜索树)描述搜索,以及平均搜索 长度(成功与不成功)的计算。 4、二叉搜索树: 要点: ·动态搜索树与静态搜索树的特性 ·二叉搜索树的定义、二叉搜索树上的搜索算法、二叉搜索树搜索时的平均搜索长度(成功 与不成功)的计算。 ·AVL 树结点上的平衡因子、AVL 树的平衡旋转方法 ·高度为 h 的 AVL 树上的最少结点个数与最多结点个数 ·AVL 树的搜索方法、插入与删除方法
第四章 栈与队列 1、栈:栈的特性、栈的基本运算 要点: ·栈的数组实现、栈的链表实现 ·栈满及栈空条件、抽象数据类型中的先决条件与后置条件 2、栈的应用:用后缀表示计算表达式,中缀表示改后缀表示 3、队列:队列的特性、队列的基本运算 要点: ·队列的数组实现:循环队列中队头与队尾指针的表示,队满及队空条件 ·队列的链表实现:链式队列中的队头与队尾指针的表示、 4、双向队列:双向队列的插入与删除算法 5、优先级队列:优先级队列的插入与删除算法
第五章 递归与广义表 1、递归:递归的定义、递归的数据结构、递归问题用递归过程求解 要点:·链表是递归的数据结构,可用递归过程求解有关链表的问题 2、递归实现时栈的应用 要点:·递归的分层(树形)表示:递归树
·递归深度(递归树的深度)与递归工作栈的关系 ·单向递归与尾递归的迭代实现 3、广义表:广义表定义、广义表长度、广义表深度、广义表表头、广义表表尾 要点: ·用图形表示广义表的存储结构 ·广义表的递归算法
பைடு நூலகம்
第三章 链接表 1、单链表:单链表定义、相应操作的实现、单链表的游标类。 要点: ·单链表的两种定义方式(复合方式与嵌套方式) ·单链表的搜索算法与插入、删除算法 ·单链表的递归与迭代算法 2、循环链表:单链表与循环链表的异同 3、双向链表:双向链表的搜索、插入与删除算法、链表带表头结点的优点 4、多项式的链接表示
第九章 排序 1、基本概念:关键码、初始关键码排列、关键码比较次数、数据移动次数、稳定性、附加 存储、内部排序、外部排序 2、插入排序: 要点: ·当待排序的关键码序列已经基本有序时,用直接插入排序最快
3、选择排序: 要点: ·用直接选择排序在一个待排序区间中选出最小的数据时,与区间第一个数据对调,而不是 顺次后移。这导致方法不稳定。 ·当在 n 个数据(n 很大)中选出最小的5 ~ 8个数据时,锦标赛排序最快 ·锦标赛排序的算法中将待排序的数据个数 n 补足到2的 k 次幂2k-1<n≤2k ·在堆排序中将待排序的数据组织成完全二叉树的顺序存储。 4、交换排序: 要点: ·快速排序是一个递归的排序方法 ·当待排序关键码序列已经基本有序时,快速排序显著变慢。 5、二路归并排序: 要点: ·归并排序可以递归执行 ·归并排序需要较多的附加存储。可以采用一种"推拉法"(参见教科书上习题)实现归并排序, 算法的时间复杂度为 O (n)、空间复杂度为 O(1) ·归并排序对待排序关键码的初始排列不敏感,排序速度较稳定 6、外排序 要点: ·多路平衡归并排序的过程、I/O 缓冲区个数的配置 ·外排序的时间分析、利用败者树进行多路平衡归并 ·利用置换选择方法生成不等长的初始归并段 ·最佳归并树的构造及 WPL 的计算
第二章 数组 1、作为抽象数据类型的数组:数组的定义、数组的按行顺序存储与按列顺序存储 要点: ·数组元素的存放地址计算 2、顺序表:顺序表的定义、搜索、插入与删除 要点: ·顺序表搜索算法、平均比较次数的计算 ·插入与删除算法、平均移动次数的计算 3、多项式:多项式的定义 4、字符串:字符串的定义及其操作的实现 要点: ·串重载操作的定义与实现
第六章 树与森林 1、树:树的定义、树的基本运算 要点: ·树的分层定义是递归的 ·树中结点个数与高度的关系 2、二叉树:二叉树定义、二叉树的基本运算 要点: ·二叉树性质、二叉树中结点个数与高度的关系、不同种类的二叉树棵数 ·完全二叉树的顺序存储、完全二叉树的双亲、子女和兄弟的位置 ·二叉树的前序·中序·后序·层次遍历 ·前序 ·中序 ·后序的线索化二叉树、前驱与后继的查找方法 3、霍夫曼树:霍夫曼树的构造方法、霍夫曼编码、带权路径长度的计算 4、树的存储:树的广义表表示、树的双亲表示、树与二叉树的对应关系、树的先根·中根·后 根·层次遍历。 5、堆:堆的定义、堆的插入与删除算法 要点: ·形成堆时用到的向下调整算法及形成堆时比较次数的上界估计 ·堆插入时用到的向上调整算法
相关文档
最新文档