首页 > 其他分享 >二叉树

二叉树

时间:2024-02-23 17:00:12浏览次数:26  
标签:左子 结点 遍历 右子 二叉树 order

二叉树

概念

二叉树是一种特殊的树,每次分叉不超过两部分。

结构

  • 根节点
    • 如果一个结点没有子树,那就称为叶子结点。
  • 左子树
  • 右子树

完美二叉树

如果一个二叉树的高度为h,从第二层开始每层结点树都是上一层的两倍。

  • 左子树
    2*x(根节点)
  • 右子树
    2*x(根节点)+1

二叉树的遍历

  • 前序遍历
    概念:首先访问根结点,然后遍历左子树,最后遍历右子树。
    代码实现:
    void pre_order(int x){
    	cout<<x;
    if(t[x].l)pre_order(t[x].l);
    if(t[x].r)pre_order(t[x].r);
    }
    
  • 中序遍历
    概念:首先遍历左子树,然后访问根结点,最后遍历右子树。
    代码实现:
    void order(int x){
    if(t[x].l)order(t[x].l);
    cout<<x;
    if(t[x].r)order(t[x].r);
    }
    
  • 后序遍历
    概念:首先遍历左子树,然后遍历右子树,最后访问根结点。
    代码实现:
    void order(int x){
    if(t[x].l)order(t[x].l);
    if(t[x].r)order(t[x].r);
    cout<<x;
    }
    

标签:左子,结点,遍历,右子,二叉树,order
From: https://www.cnblogs.com/sdlypsck/p/18029938

相关文章

  • 【数据结构】C语言实现二叉树的相关操作
    树定义树(Tree)是n(n>=0)个结点的有限集若n==0,称为空树若n>0,则它满足如下两个条件:有且仅有一个特定的称为根(Root)的结点其余结点可分为m(m>=0)个互不相交的有限集T1,T2,T3,...Tm,其中每一个集合本身又是一棵树,称为根的子树(SubTree)术语结点:数据元素结点的度:结点......
  • 二叉树小结
     ===============================================================================================二叉树的定义方式:1.顺序表:typedefstructSqTree{chardata[maxsize];boolisNULL;}SqTree;2.链表structnode{intval;structnode*lchil......
  • 力扣递归之 236. 二叉树的最近公共祖先
    给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个节点p、q,最近公共祖先表示为一个节点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例1:输入:root=[3,5,1,6,2,0,8,null,n......
  • leedcode 二叉树的最小深度
    自己写的:#二叉树节点的定义classTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightclassSolution:defminDepth(self,root:Optional[TreeNode])->int:#......
  • leedcode 平衡二叉树
    对称二叉树走不通  201/228 个通过的测试用例classSolution:defisBalanced(self,root:Optional[TreeNode])->bool:queue=[root]ifnotroot:returnTrueifnotroot.leftandnotroot.right:returnTr......
  • (20/60)二叉搜索树的最小绝对差、二叉搜索树中的众数、二叉树的最近公共祖先
    过外婆八十寿宴,补卡二叉搜索树的最小绝对差leetcode:530.二叉搜索树的最小绝对差双指针中序遍历法思路搜索树的最小绝对差一定出现在中序遍历的相邻两个元素之间。设置前后两个指针,每次对比“历史最小”与当前node->val-pre->val的值哪个更小,进行相应更新。复杂度分析......
  • 二叉树(2)
    目录538把二叉搜索树转换为累加树538把二叉搜索树转换为累加树和平常的遍历顺序不同这题根据题意是需要取比当前节点大的所有数值的和而在二叉搜索树中,节点的大小关系是左<中<右所以自然而然地我们就得到了如下的遍历顺序:右->中->左classSolution{public:intvalue......
  • 代码随想录算法训练营第二十天 | 236. 二叉树的最近公共祖先 , 501.二叉搜索树中的众
      530.二叉搜索树的最小绝对差 已解答简单 相关标签相关企业 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。 示例1:输入:root=[4,2,6,1,3]输出:1示......
  • 「力扣」104. 二叉树的最大深度
    「力扣」104.二叉树的最大深度题目描述给定一个二叉树root,返回其最大深度。二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。示例1:输入:root=[3,9,20,null,null,15,7]输出:3示例2:输入:root=[1,null,2]输出:2提示:树中节点的数量在[0,10......
  • 代码随想录算法训练营第十九天 | 98.验证二叉搜索树, 700.二叉搜索树中的搜索,617.合并
     654.最大二叉树 已解答中等 相关标签相关企业 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树......