第一章
算法:是指解题方案正确而完整描述
算法基础特征:可行性、确定性、又穷性、拥有足够情报
算法设计基础方法:列举法、归纳法、递推、递归、减半递推技术、回溯法
算法复杂度关键包含时间复杂度和空间复杂度
用算法在实施过程中所需基础运算实施次数来度量算法工作量
数据结构作为计算机一门学科,关键研究和讨论一下三个方面问题:
(1)数据集合中各数据元素之间所固有逻辑关系,即数据逻辑结构
(2)在对数据进行处理时,各数据元素在计算机中储存关系,即数据存放结构
(3)对数据结构进行运算
7、数据逻辑结构:是指带有结构数据元素集合
8、数据结构应包含(1)表示数据元素信息
(2)表示各数据元素之间前后件关系
所谓数据逻辑结构,是指反应数据元素之间逻辑关系数据结构
数据逻辑结构在计算机存放空间中存放形式称为数据存放结构
依据数据结构中各数据元素之间前后件关系复杂程度通常将数据结构分为两大类型:
线性结构和非线性结构
假如一个非空数据结构满足下列两个条件
(1)有且只有一个根结点
(2)每一个结点最多有一个前件,也最多有一个后件
则称该数据结构为线性结构,又称线性表
线性表是最简单、最常见一个数据结构
非线性表有以下结构特征
(1)有且只有一个根结点a1,它无前件
(2)有且只有一个终止点An,它无后件
(3)除根结点和终止端外,其它全部结点有且只有一个前件,也有且只有一个后件,
线性表中结点个数n称为为线性表长度,当n=0时,称为空表
15线性表次序存放结构含有两个基础特点
(1)线性表中全部元素所占存放空间是连续
(2)线性表中各数据元素在存放空间中是按逻辑次序依次存放
次序表插入、删除运算
栈:是限定在一端进行插入和删除线性表
栈是根据“优异后出”或“后进先出”标准组织数据,栈也被称为“优异后出” 表
或“后进先出”表
栈中个数=bottom-top+1 (用值大减值小再加一)
Top=0表示栈空 top=m表示栈满
支持子程序调用数据结构是栈
栈基础运算有三种:入栈、退栈、和读栈顶元素
队列:是指许可在一端进行插入、而在另一端进行删除线性表
队列称为“优异先出”或“后进后出”线性表
对列空和对列满条件:队列空条件为s=0,队列满条件为s=1且ftont=rear
入队运算、是指在循环队列队尾加入一个新元素
退队运算、是指在循环队列排头位置退出一个元素并赋给指定变量
线性表链式存放式结构称为线性链表
(1)在线性链表中查找指定元素
(2)线性链表插入、是指在链式存放结构下线性表中插入一个新元素
(3)线性链表删除、是指在链式存放结构下线性表中删除包含指定元素结点
26、树是一个简单非线性结构
27、树这种数据结构基础特征
(1)在树结构中每一个结点只有一个前件,称为父结点没有前件结点只有一个,称
为树根结点,简称为树根。
在树结构中,每一个结点能够有多个后件,它们全部称为该结点子结点。没有后
件结点称为叶子结点
(3)在树结构中,一个结点所拥有后件个数称为该结点度。叶子结点度为0在
树中,全部结点中最大度称为树度
树最大层次称为树深度
在树中,以某结点一个子结点为根组成树称为该结点一颗子树,叶子结点没有子
树
二叉树,是一个很有用非线性结构
二叉树特点:(1)非空二叉树只有一个根结点
(2)每一个结点最多有两颗子树,每一个结点度最大为2
二叉树基础性质:(1)在二叉树第k层上,最多有2k-1次方(k>=1)个结点
(2)深度为m二叉树最多有2m次方-1个结点(深度为m
二叉树是指二叉树共有m层)
(3)在任意一棵二叉树中,度为0结点(即叶子结点)总是比度
为2结点多一个
(4)含有n个结点二叉树,其深度最少为【log2N】+1,其中【log2N】
表示取其整数部分
满二叉树和完全二叉树(1)满二叉树:除最终一层外,每一层上全部结点全部有两个
子结点
(2)完全二叉树:除最终一层外,每一层上结点树均达成最
大值,在最终一层上只缺乏右边若干结点
完全二叉树性质:(1)含有m个结点完全二叉树深度为【log2N】+1
(2)设完全二叉树