本章学习的内容为树 定义:树是一个n(n>=0)个结点的有序合集 结点:指树中的一个元素; 结点的度:指结点拥有的子树的个数,二叉树的度不大于2; 数的度:指树中的最大结点度数; 叶子:度为0的结点,也称为终端结点; 高度:叶子节点的高度为1,根节点高度最高; 层:根在第一层,以此类推; 二叉树的定 ...
分类:
其他好文 时间:
2020-06-01 01:10:47
阅读次数:
65
从后序遍历还原二叉树 /** * @Date 2020/5/31 * @Author Redo * @Description 从后序遍历输出中重建二叉树 **/ public class RecoverTreeFromPostOrderOutput { static class Node{ int ...
分类:
其他好文 时间:
2020-05-31 18:11:44
阅读次数:
53
思路: 通常我们进行二叉树的遍历(前序遍历、中序遍历和后序遍历)时,不考虑空节点。但有时需要我们将空节点也放入遍历序列中。 由于考虑了空节点,不能再用是否为空作为递归结束的条件。容易想到,只要一个节点非空,并且它的左右叶节点不同时为空,则其左右叶节点均要被遍历。这样我们就得到了考虑空节点的遍历。 以 ...
分类:
其他好文 时间:
2020-05-31 13:09:56
阅读次数:
116
本章我们学习了树与二叉树,树对于我来说是一种新的概念,虽然它本身的结构比较简单,但是在认清一些概念的时候还是要费上一点功夫,我们学习到的有树的基本术语: 节点的度:节点的子树个数。 树的度:树的所有节点中最大的度数(树的度通常为节点个数的N-1)。 叶节点:度为0的节点(也称叶子节点)。 父节点:有 ...
分类:
其他好文 时间:
2020-05-30 22:11:45
阅读次数:
83
先来一个前序遍历把所有结点存在一个列表中,然后遍历链表,把所有结点用右指针串起来 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * ...
分类:
其他好文 时间:
2020-05-30 22:05:09
阅读次数:
83
第五章学习了树与二叉树等相关内容 具体有如何去遍历一颗二叉树,分为层次遍历,先序遍历,中序遍历和后序遍历。其次还有最优的哈夫曼树,怎么去构造一棵哈夫曼树,从低往上构造等等。以及树的构造中会用到的链式存储及顺序存储结构还有借助数组来解决相关问题,定义树时采用的是递归的方式。 #include<iost ...
分类:
其他好文 时间:
2020-05-30 16:05:52
阅读次数:
78
1 bool verifyPostorder(vector<int>& postorder){ 2 if(postorder.empty()) return true; 3 bool res = helper(postorder,0,postorder.sizee()-1); 4 return re ...
分类:
其他好文 时间:
2020-05-30 00:58:47
阅读次数:
77
题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节 ...
分类:
其他好文 时间:
2020-05-29 18:04:49
阅读次数:
75
题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 代码: 1 class Solution { 2 public: 3 bool VerifySquenceOfBST(vector<int> seque ...
分类:
其他好文 时间:
2020-05-27 15:43:58
阅读次数:
59