首页 > 其他分享 >二叉树

二叉树

时间:2023-05-09 14:35:25浏览次数:39  
标签:结点 遍历 数为 二叉 二叉树 深度

相关知识点:

  • 结点拥有的子树数称为结点的度
  • 树的度是树内各结点度的最大值
  • 树中结点的最大层数称为树的高度或深度

 

根结点:无双亲,唯一

叶结点:无孩子,可以多个

中间结点:一个双亲多个孩子

 

二叉树的特点:

  • 每个结点最多有两棵子树
  • 左子树和右子树是由顺序的

特殊二叉树:

  • 斜树,每层只有一个结点,结点个数与二叉树的深度相同
  • 满二叉树
  • 完全二叉树

二叉树的性质:

  • 二叉树的第i层上最多有2i-1个结点(i>=1)
  • 深度为k的二叉树最多有2k-1个结点(k>=1)
  • 任意一棵二叉树,终端结点数为n0,度为2的节点数为n2,则n0=n2+1
  • 具有n个结点的完全二叉树的深度为【log2n】+1,【x】代表不大于x的最大整数

 

二叉树的遍历:

深度优先(栈来实现)

  • 前序遍历:中左右
  • 中序遍历:左中右
  • 后序遍历:左右中

广度优先(队列实现)

  • 层次遍历

二叉搜索树

左小于根,右大于根

平衡二叉搜索树

它是一棵空树或它的左右两个子树的高度差的绝对值不超过1

C++中map、set、multimap,multiset的底层实现都是平衡二叉搜索树

 

标签:结点,遍历,数为,二叉,二叉树,深度
From: https://www.cnblogs.com/gaishuobulao/p/17384923.html

相关文章

  • 顺序存储二叉树
    顺序存储二叉树1.介绍从数据存储来看,数组的存储方式和树的存储方式是可以互相转换的,即数组可以转换成树,树也可以转换成数组;遍历数组arr时,仍然可以以前序遍历、中序遍历、后序遍历的方式得到二叉树。2.顺序存储二叉树的特点顺序存储二叉树通常只考虑完全二叉树;下标为......
  • 二叉树
    树是有限个(n>0)元素组成的集合。树中每个结点拥有的孩子结点的个数称为该结点的度,度为0的结点为叶子结点或终端结点。树的度是树中结点的度的最大值。在有序树中,孩子结点沿用左边大、右边小的原则。二叉树是有限个(n>=0)结点的集合。可以为空,或者有一个结点作为根结点,其他结点......
  • 二叉树的线索化与遍历
    废话不说,上代码l1packagedataSrtuct.TreeAlgorithm;23importcom.sun.source.tree.Tree;45publicclassThreadBinaryTree{6publicstaticvoidmain(String[]args){7TreeNode2root=newTreeNode2(1,"M");8......
  • 线索二叉树
    (39条消息)线索二叉树,画图教你秒懂线索二叉树(线索二叉树的建立和简单操作)逻辑代码分析_IC00的博客-CSDN博客摘自这位大佬的内容,感觉写的很不错......
  • C/C++二叉树应用[2023-05-08]
    C/C++二叉树应用[2023-05-08]湖南应用技术学院实验(训)报告课程名称 数据结构与算法 课程代码 221031203 成绩评定 学院 信息工程学院 专业 物联网工程 指导老师 聂作财学生姓名 xxxx 学号 xxxxx 班级 物联xxxx实验地点 实验日期 年月日小组成员 无实验类型 □验......
  • leetcode 101 对称二叉树 Simple
    题目给你一个二叉树的根节点root,检查它是否轴对称。输入:root=[1,2,2,3,4,4,3]输出:true输入:root=[1,2,2,null,3,null,3]输出:false题解考察二叉树的遍历,使用广度优先BFS方法.BFS的关键在于使用队列,遍历树时,读到的节点先入队,再出队,出队时读取值,放入结......
  • (第26章)LinuxC本质中链表、二叉树和哈希表
    文章目录一、单链表的结构决定只能出栈,入栈1.链表的结构2.链表与数组的区别3.单链表所有基本操作代码(1)链表的插入(2)链表的查找(3)链表的删除(3)遍历整个链表(4)销毁整个链表4.习题5.C++NULL指针二、双向链表结构决定可以出队和入队1.在上面的单项链表上改改,得到双向链表2.改进双向链表:新增......
  • 平衡二叉树
    classSolution{public:boolres=true;intdfs(TreeNode*root)//返回以root为根节点的子树深度{if(root==NULL)return0;intl=dfs(root->left),r=dfs(root->right);if(abs(l-r)>1)res=false;returnmax(l......
  • 线索二叉树
    线索二叉树为什么要研究线索二叉树?如何解决上面的问题?我们使用第三种方法二叉链表当中右很多空的指针域线索二叉树定义例子线索二叉树增设了这些指针之后,会难以区分是指向孩子的指针还是指向前驱结点或者后继结点的指针所以要加上两个标志域线索二叉树的结点结......
  • 计算二叉树深度
    解决思路如果是空树,则深度为0;否则,递归计算左子树的深度记为m,递归计算右子树的深度记为n,二叉树的深度则为m与n的较大者加1。intDepth(BiTreeT){if(T==NULL)return0;else{m=Depth(T->lchild);n=Depth(T->rchild);if(m>n)return(m+1);......