
数据结构笔记
邵光亮
要为自己喜欢的事情不留余力
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图
图的相关概念和定义 图的逻辑结构 图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G=(V,E)G=(V,E)G=(V,E) GGG表示一个图,VVV是图GGG中顶点的集合,EEE是图GGG中顶点之间边的集合。 基本概念 无向边:顶点vi和vj之间的边没有方向,表示为(vi,vj)。(v_{i},v_{j})。(vi,vj)。 无向图:顶点vi和vj之间的边没有方...原创 2019-12-10 09:12:40 · 177 阅读 · 0 评论 -
二叉树的实现
二叉树的存储结构及实现 顺序存储结构 二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置(下标)应能体现结点之间的逻辑关系——父子关系。 前序遍历 void Preorder(int root, char data[]){ if(data[root]!='\0'){ cout<<data[root] ; Preorder(2*root,data...原创 2019-12-10 08:57:43 · 388 阅读 · 4 评论 -
树和二叉树
树的定义 树是n(n≥0)个结点的有限集合。当n=0时,称为空树。 任意一棵非空树满足以下条件: 有且仅有一个特定的称为根的结点; 当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,…,TmT_{1},T_{2},… ,T_{m}T1,T2,…,Tm,其中每个集合又是一棵树,并称为这个根结点的子树。 树的定义是采用递归方法 树的基本术语 结...原创 2019-12-10 08:42:25 · 166 阅读 · 0 评论 -
字符串和多维数组
字符串的定义 字符串是零个或多个组成的有限序列,只包含空格的串成为空格串。串中所包含的字符个数成为串的长度,长度为0的串为空串,记作“”,一个非空串通常该记作: S=“s1,s2…sn” 字符串中任意个连续的字符组成的子序列称为该串的子串,相应地,包含子串的串称为主串,子串的第一个字符在主串的序号成为子串在主串的位置。 字符串的比较 当下列条件之一成立时,称X>Y。 (1)n&l...原创 2019-11-06 21:19:53 · 730 阅读 · 0 评论 -
栈和队列
栈和队列都是通过动态集合来存储数据,在栈和队列中添加和删除数据都是预先设定的。 在栈(Stack)中,被删除的元素是最近添加的元素,所以栈的实现方式是后进先出(Last-in, First-out); 在队列中,被删除的元素是最开始添加的的元素,也就是在动态集合中存放时间最长的那个元素,所以队列的实现方式是先进先出(First-in,First-out)。 栈 在栈的数据结构中,添加元素的...原创 2019-11-06 21:03:13 · 208 阅读 · 0 评论 -
单链表的实现
描述 定义单链表类,创建带头结点的单链表(节点类型为整型数据),要求包含以下成员函数: 头插法创建单链表(利用构造函数实现) 尾插法创建单链表(重载构造函数实现) 链表的遍历 按值删除一个节点 按位置删除一个节点 链表的析构 输入 输入一组数据,以尾插法的形式创建单链表(0表示输入结束)(构造第一个链表) 输入一组数据,以头插法的形式创建单链表(0表示输入结束)(构造第二...原创 2019-09-11 17:56:43 · 1199 阅读 · 0 评论 -
有序的双链表的实现
描述 定义有序的双链表类,链表中存储整型数据,创建带头结点的有序双链表,要求包含以下成员函数: 双链表的构造函数(非空的链表,输入数据为0,表示输入结束) 插入操作(将一个数据元素插入到有序的双链表中,插入之后链表仍然有序,输入数据为0表示插入操作结束) 按值删除节点(考虑有重复值的情况) 双链表的遍历操作 双链表的析构 输入 输入链表中的元素,根据输入元素,创建有序双链表(非空...原创 2019-09-11 19:06:22 · 1125 阅读 · 0 评论 -
线性表的顺序存储
一、线性表简介 线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列。线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一个直接前驱,有且只有一个直接后继,而序列头元素没有直接前驱,序列尾元素没有直接后继。 数据结构中常见的线性结构有数组、单链表、双链表、循环链表等。线性表中的元素为某种相同的抽象数据类型。可以是C语言的内置类型或结构体,也可以是C++自定义类型。 线性...原创 2019-09-22 13:38:32 · 409 阅读 · 0 评论 -
线性表的链接储存结构及实现
单链表 1 单链表的定义 单链表是用一组任意的存储单元来存放线性表的元素。存储单元可以连续,也可以不连续 为了正确的表示元素之间的逻辑关系,每个存储单元除了存储元素外 ,还需要存储后继元素的位置,这个地址信息用指针表示,称为指针;这两个元素组成了数据元素的存储映像,称为结点 也就是说节点有两个部分组成的 数据域 指针域 2 单链表结点c++实现 struct Node{ ...原创 2019-09-22 13:51:26 · 1331 阅读 · 1 评论