多核计算与程序设计 - 08 基本算法和数据结构 之四 二叉树

本文介绍了排序二叉树的基本概念,包括定义、插入操作、遍历方式(深度优先、广度优先和顺序遍历)以及删除操作的详细步骤。删除节点时,通过找到最接近的叶子节点进行替换以保持树的结构稳定。
摘要由CSDN通过智能技术生成

基础知识


    二叉树: 一种特殊的普通树,每个节点刚好有两棵子树(包括为空的)的普通树。


    树梢节点: 左右子树至少有一个节点为空的子树。
    最小树梢节点和最小树梢高度: 离根节点最近的树梢节点为最小树梢节点,最小树梢节点到根节点的距离为最小树梢高度。
    最大树梢节点和最大树梢高度: 离根节点最远的树梢节点为最大树梢节点,最大树梢节点到根节点的距离为最大树梢高度。


    二叉树的高度: 最大树梢高度就是二叉树的高度。


定理


    定理 1: 一棵二叉树为完全二叉树的充分必要条件是,任何树梢节点到根的距离都相等。
    定理 2: 假设二叉树的最小树梢高度为 p,那么二叉树的节点个数大于等于 2^p - 1。



排序二叉树(搜索二叉树):


    如果将二叉树的节点按照一定顺序排放,二叉树就变成了一棵有序二叉树或者叫搜索二叉树。


    定义:    排序二叉树中任意节点的左节点小于它,右节点大于它。
    


基本操作

    插入

    主要是要找到新节点的插入位置,如果插入的值比当前节点的小则向当前节点的左子树找,否则向右子树找,直到找到树的末端。      

insert_diagram


    
    遍历
    二叉树也是一种普通树,它也可以进行深度优先或广度优先遍历。

    因为它有排序的性质,它还可以进行顺序遍历。基本的想法是先找到树中最左侧的叶子节点,打印出来,在从最左侧的叶子节点向上找他的父节点,然后是右侧节点。

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值