
数据结构与算法
RightJay
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树的非递归遍历
二叉树的非递归遍历二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。 三种遍历方式访问节点的顺序是一致的,不同之处在于,有的遍历流程把访问到的节点暂存起来,达成某种条件后再将节点输出。原创 2020-09-27 16:25:05 · 12163 阅读 · 0 评论 -
双指针定义栈结构
双指针定义栈结构通常栈的结构定义是这样:typedef int ElemType;typedef struct{ ElemType data[MAXSIZE]; int top; // 用于标注栈顶的位置 int stackSize;}用 top 变量来指示栈顶元素在数组中的位置,stackSize表示栈的最大容量,栈顶位置top必须小于stackSize。当栈存在一个元素时,top = 0, 空栈时,top = -1。双指针法:typedef int原创 2020-09-20 17:22:07 · 723 阅读 · 1 评论 -
数据结构之线性表
线性表线性表(List)的定义:由零个或多个数据元素组成的有限序列。数学语言来进行定义:若将线性表记为(a1,…,ai-1,ai,ai+1,…an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。所以线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。强调几个关键的地方:首先它是一个序列,也就是说元素之间是有个先来后到的,像刚才的小蝌蚪就没有顺序。若元素存在多个,则第一个元素无前驱,而最原创 2020-09-20 16:19:00 · 406 阅读 · 0 评论