线性表:具有相同数据类型的n(n>0)个数据元素的有限序列. 主要有顺序存储和链式存储. 顺序存储: 特点:地址连续,随机/存取,顺序存储. 建立:首地址/存储空间大小(数组),表长. 方式:静态和动态. 优点:存储密度大:随机存储:快速存取表中任一位置元素. 缺点:插入删除移动大量元素:对存储空间要求高,会产生存储空间的碎片. 1.插入 bool ListInsert(SqList &L,int i,Elemtype e){ ||i>L.length+) //判断i范围是否有效 re…
二.线性表 2.1-线性表简介 2.1.1-线性表的定义 线性表是由若干个相同特性的数据元素组成的有限序列.若该线性表不包含任何元素,则称为空表,此时长度为0,当线性表不为空时,表中的元素的个数就是线性表的长度. 2.1.2-形式 {a[1],a[2],a[3]······,a[i]······,a[n]} 其中a[i]表示线性表中的任意一个元素,n表示元素的个数.表中a[1]为第一个元素,以此类推,a[n]就是最后一个元素,因为a[1]领先于a[2],所以我们称a[1]是a[2]的直接先驱元素…
顺序查找(线性查找) 主要用于在线性表中的查找 int Search1(int a[],int n,int key){ ;i<=n;i++){ //注意从1开始 if(a[i]==key)return i; //查找成功 } ; //查找失败 } int Search2(int a[],int n,int key){ int i=n; a[]=key; //设置“哨兵” while(a[i]==key){ //若不是找的元素 i--; //从前往后查找 } return i; //查找失败也返回…
队列 只允许在一端进行插入,在另一端进行删除的线性表 队头(Front):允许删除的一端(队首) 队尾(Rear):允许插入的一端 FIFO:先进先出 不要求从数组首位开始存储队列 #define MaxSize 50 //定义队列中元素的最大个数 typedef struct{ ElemType data[MaxSize]; //存放队列元素 int front,rear; //队头指针和队尾指针 }SqQueue; 循环队列 其中,首尾相连的顺序存储的队列叫循环队列 入队:rear=(rea…
栈(Stack) 只允许在一端进行插入或删除操作的线性表 栈顶(Top):栈中允许进行插入和删除操作的那一端: 栈底(Bottom):固定的,不允许进行插入或删除的另一端 1.栈是受限的线性表,所以自然具有线性关系. 2.栈中元素后进先出. 栈的顺序存储==顺序栈 #define MaxSize 50 //定义栈中元素的最大个数 typedef struct{ Elemtype data[MaxSize]; //存放栈中元素 }Sqstack; //顺序栈简写 1.Top的值不能超过MaxSiz…
白天没屌事,那我们就来玩玩线性表的实现吧,快要失业了,没饭吃了咋整哦 题目描述假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A∪B.这就要求对线性表做如下操作:扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去.只要从线性表LB中依次取得每个元素,并依值在线性表LA中进行查访,若不存在,则插入之. #ifndef FUNC_H_INCLUDED #define FUNC_H_INCLUDE…
图G由顶点集V和边集E组成,记为G=(V,E) 图不可为空,一定有顶点集不为空 有向图:有向边(弧)的有限集合 无向图:无向边的有限集合 连通:顶点V到顶点V'有路径 连通分量:无向图中的极大连通子图(极大:1.顶点足够多:2.极大连通子图包含依附这些点的所有边) 强连通分量:有向图中的极大强连通子图 连通的生成树:包含图中的全部n个顶点,但只有n-1条边的极小连通子图 度:以该顶点为一个端点的边数目 入度(ID):以顶点为终点的有向边数目 出度(OD):以顶点为起点的有向边数目 图的存储结构…
树 一对多的树型结构,有且只有一个特定的根结点. 结点的度:结点拥有子树的数量{ 度为0:叶子结点/终端结点. 度不为0:非终端结点/分支结点(除去根结点其它称为内部结点).} 树的度:树中所有结点的度数的最大值. 树的层次:根为第一层,以此类推. 结点的深度:根结点开始,自顶向下累加. 结点的高度:叶结点开始,自底向上累加. 树的高度(深度):树中结点的最大层数. 结点关系: 祖先结点:根结点到该点的唯一路径上的任意结点. 子孙结点 双亲结点:根结点到该点的唯一路径上的最近结点. 孩子结点 兄…
1.数据>数据元素>数据项      数据的基本单位是数据元素,数据元素的基本单位是数据项 2.运算的定义->针对逻辑结构 集合:同属于一个集合,无其他关系.(数学上的集合) 线性结构:1对1关系(排队) 树形结构:1对多关系(族谱) 图状网状结构:多对多关系(地图) 3.运算的实现->针对物理结构 顺序存储:存储物理位置相邻 链式存储:存储的物理位置未必相邻 索引存储:类似于目录 散列存储:通过关键字直接计算出元素的物理地址 4.时间复杂度 o(1)<o(log2n)<…
二叉树 n(n>=0)个结点的有限集合:(五种形态) 1.或者为空二叉树,n=0: 2.或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成.左子树和右子树又分别是一棵二叉树. 3.每个结点最多有2棵子树 4.左右子树有顺序 特殊二叉树 一.斜树 二.满二叉树:1.分支结点都存在左右子树 2.叶子都在同一层 3.非叶子结点的度一定为2 4.相同深度二叉树中满二叉树结点个数最多,叶子树最多 三.完全二叉树:编号与同高度的满二叉树一一对应. 1.叶子结点只可能在层次最下面的两层出现,集中在左…