深度优先遍历与广度优先遍历深度优先遍历 1.深度优先遍历的递归定义 假设给定图G的初态是所有顶点均未曾访问过。在G中任选一顶点v为初始出发点(源点),则深度优先遍历可定义如下:首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w。若w未曾访问过,则以w为新的出发点继续进行深度 ...
分类:
编程语言 时间:
2018-01-03 13:56:41
阅读次数:
177
二叉树——遍历篇 二叉树很多算法题都与其遍历相关,笔者经过大量学习并进行了思考和总结,写下这篇二叉树的遍历篇。 1、二叉树数据结构及访问函数 2.3、非递归遍历——借助栈 借助栈,可以实现非递归遍历。 在这里三种非递归遍历都总结和介绍一种算法思路,其栈中保存的节点可以用于路径搜索类的题目,即保存着从 ...
分类:
编程语言 时间:
2017-12-31 12:51:18
阅读次数:
177
参考自:https://www.cnblogs.com/fengxmx/p/3764512.html ...
分类:
其他好文 时间:
2017-12-23 21:39:45
阅读次数:
225
从现在开始决定整理下“数据结构和算法的相关知识”,以下为复习成果: 1. 数组、单链表和双链表 2. 栈 3. 队列 4. 树与二叉树(上){二叉树的创建与递归遍历} 树与二叉树(中){二叉树的非递归遍历与二叉树查找} 树与二叉树(下){二叉树的应用:求解四则运算} 5. 图(上){ 图的基本概念、 ...
分类:
其他好文 时间:
2017-12-11 11:13:46
阅读次数:
165
利用栈的非递归先序遍历二叉树: 额,这个是我自己写的,可能算法有点啰嗦…… 利用栈实现非递归后序遍历二叉树: 这个是网上找的实现算法: 利用栈的非递归终须遍历二叉树在数据结构课本的p135上 ...
分类:
其他好文 时间:
2017-12-07 14:52:09
阅读次数:
138
1 #include 2 #include 4 #include 5 typedef char datatype; //字符类型 内容 6 typedef struct node{ //二叉链树数据结构 7 datatype data; 8 struct node *lchild,*rchild; ... ...
分类:
编程语言 时间:
2017-11-27 15:22:54
阅读次数:
266
一、非递归先序遍历:先遍历根节点,后左,再右。先访问即任一节点,其可看作是根节点,因此可以直接访问;访问之后,若其左孩子不为空,按相同的规则访问他的左子树。 当访问其左子树,再访问其右子树,处理过程如下: 1、访问节点cur,将其入栈; 2、判断节点cur的左孩子是否为空,若为空,则取栈顶节点出栈, ...
分类:
其他好文 时间:
2017-11-12 17:33:45
阅读次数:
101
// 先序遍历非递归 public static void preOrder2(BinTree t) { Stack s = new Stack(); while (t != null || !s.empty()) { while (t != null) { ... ...
分类:
其他好文 时间:
2017-09-06 19:32:09
阅读次数:
108
题型一:非递归遍历二叉树后续 题型二:非递归二叉序前序遍历(中序差不多,就不写了,自己去脑补去。。。。 ...
分类:
其他好文 时间:
2017-08-06 20:54:34
阅读次数:
149