二叉树各种
文章平均质量分 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 · 438 阅读 · 0 评论 -
判断一棵树是不是满二叉树
满二叉树的定义:除最后一层是叶子结点,其他各层原创 2016-04-24 22:48:10 · 1157 阅读 · 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 · 326 阅读 · 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 · 1587 阅读 · 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 · 338 阅读 · 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 · 364 阅读 · 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 · 421 阅读 · 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 · 319 阅读 · 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 · 250 阅读 · 0 评论 -
判断二叉树是不是完全二叉树
完全二叉树定义:除最后一层外,其它各层的结点数都达到最大个数,并且最后一层所有的结点都连续集中在最左边,这就是完全二叉树。定义形象化:(1)除最后一层外,其它各层的结点数都达到最大个数如果一个结点的孩子数小于2,那这个结点一定在最后两层中的某一层,否则一定不是完全二叉树。因为,除最后一层,其他各层构成满二叉树。那么如果一个结点孩子数小于2,那它的后续结点必须是叶子结点。(2)最后一原创 2016-04-24 23:19:50 · 646 阅读 · 0 评论
分享