1,个人理解前缀、中缀、后缀表达式应该对应着树的前序遍历、中序遍历和后序遍历。 2,中缀表达式更方便人类理解,后缀表达式因为其堆栈结构更方便计算机理解,这就像计算机组成原理中的补码和源码一样,补码更方便计算机计算,源码更方便人类看懂,也可以用二进制和十进制对比,为什么计算机整个框架建立在二进制的基础 ...
分类:
其他好文 时间:
2020-07-18 22:04:50
阅读次数:
83
题目链接:https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal/ 方法一递归法:先访问子节点,然后访问根。LeetCode代码: /* // Definition for a Node. class Node { public ...
分类:
其他好文 时间:
2020-07-16 21:39:10
阅读次数:
79
##题目大意 用栈的形式给出一棵二叉树的建立的顺序,求这棵二叉树的后序遍历 ##tips string用printf输出:printf(“%s”, str.c_str()); ##AC代码 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #inc ...
分类:
其他好文 时间:
2020-07-15 22:48:44
阅读次数:
44
(熟练!重要!)二叉搜索树 BST ##题目大意 判断给定序列是否是一个BST或镜像BST树的先序遍历序列,如果是则输出该树的后序遍历序列。 ##思路 根据给定序列创建BST树,求出它的先序遍历和镜像树的先序遍历(即原树遍历时按照根->右->左),与原序列比较。 ##AC代码 #define _CR ...
分类:
其他好文 时间:
2020-07-14 11:52:38
阅读次数:
62
前言 昨天和今天复习了二叉树的前序遍历、中序遍历和后序遍历,找到了一种统一的非递归的方法(即使用一个思路非递归实现二叉树的前序、中序和后序遍历)。 思路 思路本质上还是递归,只不过不通过递归函数显示地递归,而是通过栈模拟递归的过程。 具体思路:https://leetcode-cn.com/prob ...
分类:
其他好文 时间:
2020-07-13 15:41:18
阅读次数:
65
501. 二叉搜索树中的众数 描述: 思路:中序遍历。 503. 下一个更大元素 II 描述: 思路:单调栈。 506. 相对名次 描述: 思路:先拍戏。再替换。 508. 出现次数最多的子树元素和 描述: 思路:后序遍历。否则叶子节点就遍历了很多次。通过hash存《和,次数》 513. 找树左下角 ...
分类:
其他好文 时间:
2020-07-13 13:31:19
阅读次数:
83
前序遍历 先输出当前结点的数据,再依次遍历输出左结点和右结点 根结点 > 左子树 > 右子树 中序遍历 先遍历输出左结点,再输出当前结点的数据,再遍历输出右结点 左子树 > 根结点 > 右子树 DBEAFC 后序遍历 先遍历输出左结点,再遍历输出右结点,最后输出当前结点的数据 左子树 > 右子树 > ...
分类:
其他好文 时间:
2020-07-11 23:04:48
阅读次数:
66
前序遍历的非递归实现 中序遍历的非递归实现 1 void InOrder2(BTNode *root) { 2 BTNode *p = root; 3 stack<BTNode *> S; 4 while (p != NULL || !S.empty()) { 5 if (p) { // 找到树中最 ...
分类:
编程语言 时间:
2020-07-11 19:21:14
阅读次数:
59
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 方法一:递归分治 根据二叉搜索树的定义,可以通过递归,判断所有子树的 正确性 (即其后序遍历是否满足二叉搜索树的定义) ,若所有子树都正确,则此序列为 ...
分类:
其他好文 时间:
2020-07-08 15:10:32
阅读次数:
50
目录 二分查找 排序的写法 BFS的写法 DFS的写法 回溯法 树 递归 迭代 前序遍历 中序遍历 后序遍历 构建完全二叉树 并查集 前缀树 图遍历 Dijkstra算法 Floyd-Warshall算法 Bellman-Ford算法 最小生成树 Kruskal算法 Prim算法 拓扑排序 查找子字 ...
分类:
其他好文 时间:
2020-07-07 18:08:11
阅读次数:
74