树之设计【AVL树、红黑树的设计】

技术树之设计【AVL树、红黑树的设计】 树之设计【AVL树、红黑树的设计】树之设计【AVL树、红黑树的设计】1,设计之初:? 思考:AVL树的意义:高度平衡二叉树,用来维持整棵树是一棵平衡的二叉树,那么

树形设计【AVL树,红黑树设计】。

树之设计【AVL树、红黑树的设计】

1,设计之初:

?思考:AVL树的意义:用一个高度平衡的二叉树来维持整棵树为一个平衡的二叉树,所以在继承父类[BST二叉查找树]的基础上,考虑AVL什么时候需要调整它的平衡。

 ————————————–BST 二叉搜索树,进行插入(增加)结点之后的树,可能失衡,需要调整。

   ——————-而调整树的主要工作,应该交由AVL 平衡二叉树来完成

【 过程:BST (内部知道发生了失衡,所以需要做出反应),它定义了一个接口方法(调整平衡方法)来应对失衡情况,这个调整平衡方法,交由能力最强的AVL树去具体实现】

接下来,我们来谈谈调整平衡法的具体实现:

1.首先从插入节点的位置开始,找到第一个不平衡的祖父母节点【这个过程需要判断节点不平衡】-需要节点高度属性。

-解决方案:AVL树【此刻需要有一个带有高度属性的节点类】重构节点类,添加高度属性。

2.重构后,回到BST中插入(添加)接口的方法:发现该方法的内部创建结点时,使用的结点对象都是通用的结点,并没有使用 AVL 树定义的结点类对象,小于高度属性。

回到AVL树,在AVL树中无法高度判断是否失衡。

-解决:在BST中定义一个创建结点接口方法(默认:创建的节点是公共节点),然后子类 AVL 树再对创建结点接口方法进行重写,

因此,当您需要在添加(插入)接口的方法中创建节点时,您可以使用创建出带有高度属性的结点对象。.

2,设计过程:

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/51631.html

(0)

相关推荐

  • 腾讯新闻基于 Flink PipeLine 模式的实践

    技术腾讯新闻基于 Flink PipeLine 模式的实践 腾讯新闻基于 Flink PipeLine 模式的实践基于腾讯云流计算Oceanus和PipeLine搭建的实时数据仓库思想摘要 :随着社会消

    礼包 2021年12月16日
  • 五经是指哪五经,古代的【五经】是指哪五经哦!

    技术五经是指哪五经,古代的【五经】是指哪五经哦!儒家经典五经是指哪五经:六艺《易经》、《尚书》、《诗经》、《礼记》、《乐》、《春秋》。其中《乐》已失传。五经《易经》、《尚书》、《诗经》、《礼记》、《春秋》,四书是《大学》

    生活 2021年10月30日
  • PHP实现交换两个整型变量的方法有哪些

    技术PHP实现交换两个整型变量的方法有哪些这篇文章主要介绍“PHP实现交换两个整型变量的方法有哪些”,在日常操作中,相信很多人在PHP实现交换两个整型变量的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年11月16日
  • 二手车好吗,你觉得二手车能不能买,为什么

    技术二手车好吗,你觉得二手车能不能买,为什么二手车可以买二手车好吗,但是你要买对品牌,不是什么车都可以买二手的。接触了汽修行业十几年,我来跟你说说哪些二手车可以买,哪些二手车不能买吧。
    美系车,通用系的,二手是真的不敢买

    生活 2021年10月28日
  • 如何使用Python+OpenCV进行图像模板匹配(Match Template)

    技术如何使用Python+OpenCV进行图像模板匹配(Match Template)这篇文章主要为大家展示了“如何使用Python+OpenCV进行图像模板匹配(Match Template)”,内容简而易懂,条理清晰

    攻略 2021年11月12日
  • CF538G

    技术CF538G CF538G不知道在哪里找到的题,感觉评不到黑,不过是 Good Tea.首先了解将坐标系翻转 $45^{\circ}$ 的 trick ,对于每个坐标 $(x,y)$,翻转后的坐标为

    礼包 2021年12月20日