当前位置: 首页 > news >正文

11.30BST理解,AVL树操作,定义;快速幂,二分求矩阵幂(未完)

完全二叉树结点的度可能有1,满二叉树的度只能为0或2

BST构建

BST是左孩子都比根节点小,右孩子都比根节点大

二叉搜索树的插入,删除,调整

平衡树理解

任何一个平衡二叉树,它的中序遍历都是一样的,都是有序的从小到大

之所以有调整,就是谁当根节点不同导致的。

作为根节点,就需要提供两个信息,一个是左孩子,一个是右孩子。

那么中序遍历的过程就是,先由根节点向左一直蔓延,直到到底,然后从左到右依次遍历,遍历到根节点,再从根节点向右遍历蔓延。想象一个有序序列,找到任意一个起点,这个起点就是所谓的树的根节点,那么中序遍历就是左根右,即从左到右,就是从起点(根节点)先一直向左,到底后再逐个输出,那就是中序序列。有这样的性质,就是因为左根右,序列中的每个结点左侧都是它的左孩子,它的右侧都是右孩子或者父母结点

即,左侧只会是左孩子,但右侧可能是右孩子或父母节点,但由于左孩子都小于根节点,所以一旦有右孩子,那么只能先是右孩子,即右孩子的优先级大于父母结点,因为右孩子一定小于父母节点。

AVL树

平衡因子是根节点的定义,即根节点的左右孩子高度差

如这里是4的平衡因子不满足条件,其左子树,右子树高度差大于1

求高度函数

typedef struct node {int data;node* lchild, * rchild;
}*tree;
int high(tree root) {if (root) {return max(high(root->lchild), high(root->rchild)) + 1;}return 0;
}

AVL树的构建

AVL树的调整

中序遍历都是一样的,不一样的就是根节点的确定,即起点的确定

右旋

右旋的具体步骤:
  • T向右旋转成为L的右结点
  • L的右节点Y 放到 T的左孩子上

如何判断是否为AVL

AVL树高度

由于AVL树的左右子树都是AVL树,

自变量是N,AVL树的高度。那么由于AVL树左右平衡,根节点平衡,所以对于高度为d的AVL树,根节点占一层,那么左子树(默认左子树高一点)高度为d-1,(此时加起来为d);右子树高度为d-2,因为要满足左右子树高度差不大于1而且结点要尽可能少,所以有

二分求矩阵的幂

快速幂

http://www.lryc.cn/news/253091.html

相关文章:

  • 深入理解Java核心技术:Java工程师的实用干货笔记
  • 大学里面转专业介绍
  • MySQL_1. mysql数据库介绍
  • TimeGPT:时间序列预测模型实例
  • 【JavaEE】多线程 (1)
  • linux 应用层同步与互斥机制之条件变量
  • 3.5毫米音频连接器接线方式
  • 智慧农田可视化大数据综合管理平台方案,EasyCVR助力农业高质量发展
  • python超详细基础文件操作【建议收藏】
  • 华为变革进展指数TPM的五​个级别:试点级、推行级、功能级、集成级和世界级
  • vue el-select多选封装及使用
  • 大模型上下文学习(ICL)训练和推理两个阶段31篇论文
  • WordPress(安装比子主题文件)zibll-7.5.1
  • 蓝桥杯 动态规划
  • 【图论】重庆大学图论与应用课程期末复习资料2-各章考点(计算部分)(私人复习资料)
  • 整数和浮点数在内存中的存储​(大小端详解)
  • SpringBoot 集成 ChatGPT,实战附源码
  • 数据结构——希尔排序(详解)
  • C++ day53 最长公共子序列 不相交的线 最大子序和
  • ubuntu中删除镜像和容器、ubuntu20.04配置静态ip
  • 华为手环 8 五款免费表盘已上线,请注意查收
  • JOSEF约瑟 同步检查继电器DT-13/200 100V柜内安装,板前接线
  • 龙迅#LT8311X3 USB中继器应用描述!
  • eclipse jee中 如何建立动态网页及服务的设置问题
  • 一张网页截图,AI帮你写前端代码,前端窃喜,终于不用干体力活了
  • 处理k8s中创建ingress失败
  • Redis高可用集群架构
  • JAVA常见问题解答:解决Java 11新特性兼容性问题的六个步骤
  • 【C语言】深入理解指针(1)
  • MySQL的系统信息函数