第一章
数据源和数据项
数据项:数据结构中讨论的最小单位
数据元素使数据项的集合
例如:运动员是一个数据元素它包括姓名、俱乐部名称、出生年月、职务等数据项。
算法
算法是为了解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下五个重要特性:
1.有穷性
2.确定性
3.可行性
4.有输入
5.有输出
算法设计的原则
1.正确性
2.可读性
3.健壮性
4.高效率与低储存量的需求
一个特定算法的“运算工作量”的大小,只依赖于问题的规模(通常用整数量n表示),或者说,它是问题规模的函数。
假如 ,随着问题规模n的增长,算法执行时间的增长率和f(n)的增长率相同,则可记作:
T(n) = O(f(n))
称T(n)为算法的(渐进)时间复杂度
冒泡排序的时间复杂度为T(n) = O(n²)
算法 = 控制结构 + 原操作(固有数据类型的操作)
算法的执行时间 = 原操作(i)的执行次数*原操作(i)的执行时间
从算法中选取一种对于所研究的问题来说是 基本操作 的原操作, 以该基本操作 在算法中重复执行的次数 作为算法运行时间的衡量准则
算法的空间复杂度
S(n) = O(g(n))
表示随着问题规模n的增大,算法运行所需储存量的增长率与g(n)的增长率相同。
第二章 线性表
线性机构是一个数据元素的有序(次序)集。
1.集合中必存在唯一的一个“第一元素”。
2.集合中必存在唯一的一个“最后元素”。
3.除最后元素在外,均有唯一的后继。
4.除了第一元素之外,均有唯一的前驱。
2.1线性表的类型定义
2.2线性表类型的实现--顺序映象
用一组地址连续的存储单元依次存放线性表中的数据元素
2.3线性表类型的实现--链式映象
用一组地址任意的存储单元存放线性表中的数据元素 以元素(数据元素的映像)+指针(指示后继元素存储位置的)=节点(表示数据元素)
以“节点的序列”表示线性表-----称作链表
2.4一元多项式的表示
例一、有两个集合A和B分别用两个线性表LA和LB表示(即:线性表中的数据元素即为集合中的成员)现要求一个新的结合A = A U B
例二、已知一个非纯集合B,试构造一个纯集合A,使A中包含B中所有值各不相同的元素。
第三章 栈和队列(和线性表类似)
3.1 栈的类型定义
栈是后进先出的
队列是后进后出的
3.2 栈的应用举例
数制转换 括号匹配的检验 行编辑程序问题 迷宫求解 表达式求解 实现递归
在计算机中,表达式可以有三种
不同的标识方法
设 Exp = S1 + OP +S2
则称 OP+S1+S2为表达式的前缀表示法
称 S1+OP+S2为表达式的中缀表示法
称 S1+S2+OP为表达式的后缀表示法
可见,它以运算符所在不同位置命名的。
3.3 栈类型的实现
顺序栈 链栈
3.4 队列的类型定义
3.5 队列类型的实现
树
树:
根:
子树:
层次:从根开始定义,层次数为0的结点是根结点,其字树的根的层次数为1。
父亲:
孩子:
兄弟:同一结点的孩子
树中结点的最大层次数称为树的深度(Depth)或高度。树中结点也有高度,其高度是以该结点为根的树的高度。
结点拥有的子树的数目称为结点的度(Degree)。度为0的结点称为叶子(leaf)或终端结点。度不为0的结点称为非终端结点或分支结点。
性质1:树中的结点数等于树的边数加1,也等于所有结点的度数之和加1。
树中任意两个结点之间都存在唯一的路径,同时又不会出现环路。
树中所有结点最大度数为m的有序树称为m叉树。(二叉树)
森林:是m棵互不相交的树的集合。对树中每个结点而言,其子树的集合即为森林。树和森林的概念相近。删去一棵树的根,就得到一个森林。
二叉树:每个结点的度均不超过2的有序树
性质2 在二叉树的第i层上最多有2i 个结点
性质3 在二叉树的第i层上最多有2h+1-1个结点
性质4 对于一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,,则n0 = n2 + 1
满二叉树:高度为k并且有2k+1-1 个节点的二叉树。
完全二叉树(Complete Binary Tree) :
若在一棵树二叉树中,在最下层最右侧起去掉相邻的若干叶子结点,得到的二叉树即为完全二叉树
若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的节点都连续集中在最左边,这就是完全二叉树。
完全二叉树是由满二叉树而引出来的。对于深度为K的,有N个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树
二叉树的储存结构:顺序存储结构和链式存储结构。
先序遍历:1访问根节点;2先序遍历左子树;3先序遍历右子树;
中序遍历:1中序遍历左子树;2访问根节点;3中序遍历右子树;
后序遍历:1后序遍历左子树;2后序遍历右子树;3访问根节点;
红黑二叉树:
一般的,红黑树,满足一下性质,即只有满足一下性质的树,我们才称之为红黑树:
1)每个结点要么是红的,要么是黑的。
2)根结点是黑的。
3)每个叶结点,即空结点(NIL)是黑的。
4)如果一个结点是红的,那么它的俩个儿子都是黑的。
5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。
- 大小: 2.6 KB
分享到:
相关推荐
数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。C语言因其高效、底层特性,常被用于实现数据结构和算法,使得程序更接近硬件,性能更优。本资源"数据结构与算法分析--C语言描述"是针对数据...
JS 数据结构与算法.pdf 本书主要介绍了 JavaScript 语言的基础知识,包括数据结构和算法。以下是该书的详细知识点: 一、JavaScript 基础知识 * 变量和数据类型 * 运算符和控制结构 * 函数和对象 * 数组和字符串 ...
数据结构与算法是计算机科学的基础,它涉及到如何有效地组织和管理数据,以便进行高效地查找、存储和处理。本资源包含的数据结构与算法课后习题答案,是学习这一领域的重要辅助材料,可以帮助学生深入理解和巩固所学...
数据结构与算法分析是计算机科学中的核心领域,对于任何想要深入理解编程和软件开发的人员来说,这都是不可或缺的知识。这个电子书合集包含了23本相关书籍,其中包括经典著作如《算法导论》、《编程之美》以及《设计...
资源名称:数据结构与算法视频课程(59集)资源目录:【】mysql视频教程第41讲存储过程【】数据结构与算法_1.10算法的评价【】数据结构与算法_1.1编程的灵魂:数据结构 算法【】数据结构与算法_1.2算法的作用:猜...
在编程领域,数据结构与算法是核心组成部分,它们直接影响到程序的效率和性能。Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点...
PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 ...
《武汉大学 C#数据结构与算法》是一门深入探讨计算机科学基础的课程,主要针对C#编程语言,涵盖了数据结构和算法这两个核心概念。在学习这门课程时,你将有机会掌握C#语言如何用于实现高效的数据管理和计算方法。 1...
python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法...
《Java数据结构与算法第二版源代码》是一个深入学习Java编程和算法的重要资源,它包含了丰富的实例和程序,旨在帮助开发者提升对数据结构和算法的理解与应用能力。在这个压缩包中,有两个主要的子文件:...
数据结构与算法是计算机科学的核心内容,它们在解决实际问题、提高程序效率以及编写高质量软件中扮演着至关重要的角色。数据结构是计算机存储、组织数据的方式,它可以帮助我们在计算机中以更加高效和合适的方式表示...
数据结构与算法.pdf 数据结构是计算机科学中的一门重要课程,涉及到数据的逻辑结构、存储结构、算法等方面的知识。在本文件中,我们将详细介绍数据结构的基本概念、逻辑结构、存储结构、抽象数据类型、算法等知识点...
### 数据结构与算法(C#版)关键知识点解析 #### 一、引言 《数据结构与算法(C#版)》是一本旨在通过C#语言来介绍数据结构与算法原理的书籍。随着C#语言和.NET Framework的发展,这本书不仅填补了国内以C#语言讲解...
《数据结构与算法分析—C语言描述》是一本深度探讨数据结构和算法的书籍,它以C语言作为实现工具,为读者提供了丰富的编程实践指导。这本书涵盖了数据结构的基础理论、设计方法以及C语言的实现技巧,是计算机科学...
数据结构与算法是计算机科学中的核心课程,它探讨如何有效地组织和处理数据,以及如何设计和分析解决问题的算法。这份“数据结构与算法-PPT课件”提供了丰富的学习材料,涵盖了多个关键主题。 首先,我们要了解数据...