二叉树各种
文章平均质量分 77
contestjia
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树前序建立(递归、非递归),前序遍历(递归、非递归)
二叉树如图所示: 二叉树结构定义如下: struct TreeNode{ TreeNode(int value):left(NULL),right(NULL),val(value){ } TreeNode *left; TreeNode *right; int val; }; 二叉树前序序列化表示如下: 1 2 4 -1 -1 5 7 -1 -1 -1 3原创 2016-04-19 14:46:17 · 473 阅读 · 0 评论 -
二叉树中序递归、非递归遍历
二叉树如下: 二叉树前序序列化表示如下: 1 2 4 7 -1 -1 8 -1 -1 5 -1 -1 3 6 -1 -1 -1 -1代表左右子树为NULL的情况,使用前序序列构造二叉树。 二叉树结构体表示如下: struct TreeNode{ TreeNode(int value):left(NULL),right(NULL),val(value){ } TreeNod原创 2016-04-19 19:02:29 · 276 阅读 · 0 评论 -
二叉树后序递归、非递归遍历
二叉树如下所示: 二叉树的前序序列化表示如下: 1 2 4 7 -1 -1 -1 5 -1 8 -1 -1 3 6 -1 -1 -1 -1代表左右子树为NULL的情况,使用前序序列构造二叉树。 二叉树的结构体定义如下: struct TreeNode{ TreeNode(int value):left(NULL),right(NULL),val(value){原创 2016-04-19 19:50:09 · 343 阅读 · 0 评论 -
判断一棵树是不是二叉搜索树
(一)递归判断 递归判断时,在结点值为整型时,必须指定初始最小值为INT_MIN,最大值为INT_MAX,每次递归时,传入上一层的结点值最为判断依据。 bool JudgeBst_Recur(TreeNode *node, int min, int max){ if(node == NULL) return true; if(node->val val > max) retur原创 2016-04-19 21:17:22 · 440 阅读 · 0 评论 -
二叉树递归、非递归求深度
(一)递归求深度 int TreeDeepth_Recur(TreeNode *root){ if(root == NULL) return 0; int left_deepth, right_deepth ; left_deepth = TreeDeepth_Recur(root->left); right_deepth = TreeDeepth_Recur(r原创 2016-04-19 23:08:55 · 411 阅读 · 0 评论 -
求二叉树的最后一层
二叉树表示如下: 二叉树前序序列化表示如下: 1 2 4 8 -1 -1 9 -1 -1 5 10 -1 -1 11 -1 -1 3 6 -1 12 -1 -1 7 -1 -1 -1代表左右孩子为NULL的情况,使用前序序列构建二叉树(递归或非递归)。 二叉树结构表示如下: struct TreeNode{ TreeNode(int value):left(NULL)原创 2016-04-20 15:11:55 · 367 阅读 · 0 评论 -
判断一棵树是不是AVL树
这里的AVL树指的是,在BST树的基础上,满足任意结点的平衡因子绝对值小于2 判断主程序: bool JudgeAvl(TreeNode *root, int min, int max, int &deepth){ if(root == NULL) return true; if(root->val val > max) return false; //主要判断符不原创 2016-04-20 15:29:47 · 1612 阅读 · 0 评论 -
二叉树翻转
原二叉树: 翻转后的二叉树: 主程序代码: 思路很简单,就交换左右孩子的指针。 void InvertTree(TreeNode *root){ if(NULL == root) return; std::swap(root->left, root->right); InvertTree(root->left); InvertTree(roo原创 2016-04-20 16:03:47 · 347 阅读 · 0 评论 -
判断一棵树是不是满二叉树
满二叉树的定义:除最后一层是叶子结点,其他各层原创 2016-04-24 22:48:10 · 1205 阅读 · 0 评论 -
判断二叉树是不是完全二叉树
完全二叉树定义:除最后一层外,其它各层的结点数都达到最大个数,并且最后一层所有的结点都连续集中在最左边,这就是完全二叉树。 定义形象化: (1)除最后一层外,其它各层的结点数都达到最大个数 如果一个结点的孩子数小于2,那这个结点一定在最后两层中的某一层,否则一定不是完全二叉树。因为,除最后一层,其他各层构成满二叉树。那么如果一个结点孩子数小于2,那它的后续结点必须是叶子结点。 (2)最后一原创 2016-04-24 23:19:50 · 682 阅读 · 0 评论
分享