二叉树创建遍历规则: 1.先序:根-左-右 2.中序:左-根-右 3.后序:左-右-根 二叉树定义和辅助函数例如以下: struct node { int data; struct node* left; struct node* right; }; void visit(int data) { p ...
分类:
其他好文 时间:
2017-07-31 18:55:44
阅读次数:
193
二叉树的遍历方式: 1、深度优先:递归,非递归实现方式 1)先序遍历:先访问根节点,再依次访问左子树和右子树 2)中序遍历:先访问左子树,再访问根节点吗,最后访问右子树 3)后序遍历:先访问左子树,再访问右子树,最后访问根节点 2、广度优先 按照树的深度,一层一层的访问树的节点 ...
分类:
其他好文 时间:
2017-07-30 17:12:53
阅读次数:
170
题意 :输入一棵二叉树,你的任务是按从上到下、从左到右的顺序输出各个结点的值。每个结 点都按照从根结点到它的移动序列给出(L表示左,R表示右)。在输入中,每个结点的左 括号和右括号之间没有空格,相邻结点之间用一个空格隔开。每棵树的输入用一对空括 号“()”结束(这对括号本身不代表一个结点),注意,如 ...
分类:
其他好文 时间:
2017-07-30 14:45:15
阅读次数:
121
/** * @author cj 2017年7月14日下午1:14:31 */ package com.yuanye.algorithm; import java.util.LinkedList; import java.util.List; public class BinaryTree { //... ...
分类:
编程语言 时间:
2017-07-16 11:13:49
阅读次数:
178
二叉树中序遍历的非递归算法同样可以使用栈来实现,从根结点开始,将根结点的最左结点全部压栈,当结点p不再有最左结点时,说明结点p没有左孩子,将该结点 出栈,访问结点p,然后对其右孩子做同样的处理。 二叉树中序遍历非递归算法实现如下: ...
分类:
编程语言 时间:
2017-07-15 15:49:46
阅读次数:
118
题目:输入一棵二叉树的根结点,推断该树是不是平衡二叉树。假设某二叉树中随意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 注:这里不考虑该二叉树是否是二叉排序树 解决要点: 1.后序遍历二叉树; 2.递归。 核心算法: bool isBalanced(pTree pT,int *dep ...
分类:
其他好文 时间:
2017-07-04 13:25:56
阅读次数:
138
二叉树的广度遍历想想还是比較简单的。利用队列存储当前结点的左儿子和右儿子用作未来的訪问。 代码实现 /** * 源代码名称:TreeBFS.java * 日期:2014-08-25 * 程序功能:二叉树广度遍历 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */ impor ...
分类:
编程语言 时间:
2017-06-23 19:24:14
阅读次数:
127
原题链接:https://oj.leetcode.com/problems/binary-tree-inorder-traversal/ 题目大意:中序遍历二叉树 解题思路:中序遍历二叉树。中序遍历二叉树的左子树,訪问根结点,中序遍历二叉树的右子树。非递归实现时,用一个栈模拟遍历过程就可以。由于须要 ...
分类:
其他好文 时间:
2017-06-20 18:41:42
阅读次数:
129
近期复习数据结构中的二叉树的相关问题,在这里整理一下 这里包含: 1、二叉树的先序创建 2、二叉树的递归先序遍历 3、二叉树的非递归先序遍历 4、二叉树的递归中序遍历 5、二叉树的非递归中序遍历 6、二叉树的递归后序遍历 7、二叉树的非递归后序遍历 8、二叉树的层次遍历 这里感谢博客http://b ...
分类:
编程语言 时间:
2017-06-06 10:33:22
阅读次数:
207