先序遍历 从最顶层开始遍历 中序遍历 从底层开始 如果没有节点返回节点的父节点 后续遍历 从最底层开始,只有当子节点遍历完后才遍历父节点 ...
分类:
其他好文 时间:
2018-08-02 12:18:54
阅读次数:
138
https://www.nowcoder.com/practice/564f4c26aa584921bc75623e48ca3011?tpId=13&tqId=11171&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-int ...
分类:
其他好文 时间:
2018-07-27 14:49:11
阅读次数:
133
思路: 嘻嘻,请读者自己手动模拟。博主这里不知道怎么用语言说。 拓展: 算法思路适用于 (1)每层的结点个数 (2)树的最大宽度 (3)节点位于某一层 int height(BiTree T){ if(T==null) return 0; int front= 1, rear= 1;//front ...
分类:
编程语言 时间:
2018-07-23 15:51:54
阅读次数:
160
dfs序七个经典问题 参考自:《数据结构漫谈》 许昊然 dfs序是树在dfs先序遍历时的序列,将树形结构转化成序列问题处理。 dfs有一个很好的性质:一棵子树所在的位置处于一个连续区间中。 ps:deep[x]为x的深度,l[x]为dfs序中x的位置,r[x]为dfs序中x子树的结束位置 1.点修改 ...
分类:
其他好文 时间:
2018-07-22 20:04:44
阅读次数:
237
struct Node{ int data; Node* left; Node* right;}; Node* createNode(int data){ Node* tempNode = NULL; tempNode = (Node*)malloc(sizeof(Node)); tempNode- ...
分类:
其他好文 时间:
2018-07-22 00:16:22
阅读次数:
141
树的基础知识 树的定义: 树的基本术语: 二叉树的定义:二叉树是指树的度为2的有序树。左边的为左子树,右边的为右子树。 二叉树常被用于实现二叉查找树和二叉堆。 二叉树的性质: 二叉树的遍历: 二叉树的先序遍历:先遍历根节点,再遍历左子树,再遍历右子树。(第一个是根节点,最后一个所有树的最后一个节点) ...
分类:
其他好文 时间:
2018-07-19 21:19:40
阅读次数:
196
1. 二叉搜索树结点结构定义如下: 2. 二叉搜索树的基本操作函数如下: void preOrderTraverse(TreeNode head); // 先序遍历(递归) TreeNode searchBST(TreeNode head, int val); // 查找操作(尾递归) TreeNo ...
分类:
其他好文 时间:
2018-07-16 23:08:10
阅读次数:
191
对于二叉树,树的遍历通常有4种:先序遍历,中序遍历,后序遍历。 对于多叉树,树的遍历通常有2种,深度优先遍历和广度优先遍历 Dom的操作跟树的遍历天然的联系起来。 例如:上图所示的Dom树的关系可看出成一颗多叉树, 它的广度优先遍历(层次遍历)为: 深度优先遍历为:div .root div .co ...
分类:
其他好文 时间:
2018-07-10 11:26:41
阅读次数:
211
首先,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。如图: 每一个根节点最多只有左和右的子节点,在这里,我关注的主要是二叉树的遍历,即先序遍历,中序遍历和后序遍历。 先序遍历可以总结为:根-左-右; 中序遍历可 ...
分类:
其他好文 时间:
2018-06-24 17:04:12
阅读次数:
210
1.二叉树前序遍历的非递归实现 * 实现思路,先序遍历是要先访问根节点,然后再去访问左子树以及右子树,这明显是递归定义,但这里是用栈来实现的 * 首先需要先从栈顶取出节点,然后访问该节点,如果该节点不为空,则访问该节点,同时把该节点的右子树先入栈,然后 * 左子树入栈。循环结束的条件是栈中不在有节点 ...
分类:
其他好文 时间:
2018-06-22 13:44:10
阅读次数:
153