二叉树
卢宥晟
这个作者很懒,什么都没留下…
展开
-
二叉树的前中后序遍历
前序遍历要求二叉树的输出结果为 中 左 右 按照这一个逻辑递归实现 public static void pre_Print(Node head){ if(head==null) return; System.out.println(head); pre_Print(head.left...原创 2019-04-28 07:44:58 · 261 阅读 · 0 评论 -
二叉树中序遍历的应用---------找到一个节点的后继节点
题目要求:一个正常的二叉树结构,添加一个父节点指针,指向父节点。大概是如下结构 后继节点的含义就是中序遍历时候 该节点的下一个节点。class TreeNodes { TreeNodes left; TreeNodes right; TreeNodes parent; int index; @Overrid...原创 2019-04-28 07:57:24 · 1230 阅读 · 1 评论 -
二叉树的序列化与反序列化
将二叉树输出到文本中长期保存,序列化时候需要注意到两点① 每个节点之间都要有效的分隔看,不然为否判断②节点的子节点为空也要选择特定的符号写入,不然无法知道谁是谁的子树③ 使用什么遍历方法序列化就要使用什么方法反序列化序列化代码 public static String serize(TreeNodes node){ if(node==null){...原创 2019-04-28 08:08:31 · 308 阅读 · 0 评论 -
平衡二叉树的判断
平衡二叉树的含义是所有节点形成的树,左右高度差小于1二叉树的问题好多都可以使用递归进行实现,判断二叉树是否为平衡二叉树,就判断他左子树是不是,右子树是不是。主要是考虑他所有的情况1.左子树不是平衡树2.右子树不是平衡树3.左右都是 合起来不是4.是平衡树将可能性分析出来,就很容易得出结果了 public static int Banlacne(T...原创 2019-04-28 08:20:31 · 384 阅读 · 0 评论 -
判断是否是搜索树
搜索树的含义是整个树按照中序遍历 然后遍历的结果是按升序排列的。首先想到的是进行非递归的中序遍历,然后再原来输出的位置,进行判断与前一个节点的关系。这样进行了两个节点之间的判断。代码如下:ublic static boolean isSearchTree(TreeNodes node){ //中序遍历 进行判断 if(node==null) retu...原创 2019-04-28 20:34:43 · 441 阅读 · 0 评论 -
完全二叉树的判断 与完全二叉树节点个数的计算
首先,完全二叉树的含义就是从左到右依次排满一行再排一行,各节点之间都是相邻的。判断他是否是完全二叉树,分情况判断: ① 一个节点有右子树,但是没有左子树那么他一定不是完全二叉树 ② 一个节点的左右子树不满,那说明从他之后的节点都会有子节点,都是叶节点。那么就利用层级遍历,遇到情况1直接返回false,遇到情况2然后进行标记,看后边节点是否有子节点 有的话直接返回...原创 2019-04-28 21:15:36 · 1610 阅读 · 0 评论