//非递归中序遍历 //设置一个函数,该函数的作用是深入到最左侧子树但是不遍历 void inOrder_Ii(TreeNode *bt,stack S) { while (bt) { S.push(bt); if(bt->lc) bt = bt->lc; } } void inOrder_I(Tr ...
分类:
其他好文 时间:
2020-05-26 22:12:11
阅读次数:
69
树结构专题 二叉树 几种典型运算 先序非递归 中序非递归 — 记忆区别 1 后序非递归 中序遍历的二叉树线索化 — 记忆 二叉搜索树 二叉搜索树基本操作 — 记忆 二叉树的路径最大和 知识点和代码均学习于Acwing: https://www.acwing.com/activity/ ...
分类:
其他好文 时间:
2020-02-01 12:50:54
阅读次数:
68
中序遍历的操作如下: 1)中序遍历左子树; 2)访问根节点; 3)中序遍历右子树; 对应的递归算法如下: 对应的非递归算法如下: ...
分类:
其他好文 时间:
2019-10-30 00:05:58
阅读次数:
109
题意:找出“BST”中不符合规律的两个结点。 解题思路: 在这里,我采用的是非递归中序遍历,使用pre记录前驱,tmp记录当前结点。 其实,这个题就是在建立中序线索二叉树。 https://www.cnblogs.com/yy-1046741080/p/11511263.html 对于中序遍历,弹栈 ...
分类:
其他好文 时间:
2019-10-04 15:13:24
阅读次数:
75
1.二叉树的非递归中序遍历算法 二叉树的中序遍历方法是:左中右,因此一开始会顺着根节点的左孩子一直往下(这点和先序遍历一样,这也是二者前面部分代码很相似的原因),到最后一个左孩子时尝试把它的右孩子塞进栈内,然后顺着它的的左孩子而下,直到不能访问为止。利用的栈FILO的特性,对每个节点都进行顺左孩子而 ...
分类:
编程语言 时间:
2019-07-28 21:27:44
阅读次数:
121
一、二叉树 非递归前序遍历 非递归中序遍历 非递归后序遍历 队列层次遍历 N叉树 ...
分类:
其他好文 时间:
2019-03-11 13:18:31
阅读次数:
153
自10月来,我用了3个个多月,做了大概120题, 感觉编码水平有所提升。 前120题还未总结,先记录这几天学到的东西。 Leetcode-173: BST迭代器设计 语言:C++ 简介:说白了,就是BST的非递归中序遍历,需要一个栈做辅助结构。 测试结果: 40ms 空间复杂度:与树高成正比,最好情 ...
分类:
其他好文 时间:
2018-12-29 21:03:24
阅读次数:
327
二叉树的遍历: 前序遍历(递归): LeetCode 144 非递归: 中序遍历(递归):LeetCode 94 非递归: 后序遍历(递归): LeetCode 145 非递归:(大致解析:如果该结点的左右子树都为空或者左右子树中的一个为上一次访问的结点即该结点的右结点已经访问过了,则输出。否则将该 ...
分类:
编程语言 时间:
2018-10-15 00:41:32
阅读次数:
190
题目描述:给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路1:非递归中序遍历 思路2:递归中序遍历 这个不是很懂 ...
分类:
其他好文 时间:
2018-08-26 22:57:04
阅读次数:
196
中序遍历是先遍历左子树,在自身,再遍历右子树, 非递归实现的方法,一直遍历左节点,然后出栈,在遍历右节点 ...
分类:
其他好文 时间:
2018-08-10 01:32:18
阅读次数:
136