20172315 2018-2019-2 《程序设计与数据结构》第七周学习总结

本篇博客总结了《程序设计与数据结构》第七周的学习内容,详细介绍了二叉查找树、红黑树和AVL树的概念及其平衡原理。讨论了红黑树的特性,包括节点颜色、平衡因子等,并通过示例进行解释。同时,针对教材中的难点问题,如红黑树和AVL树的理解,提供了在线资源和博客参考,帮助读者深入理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

20172315 2018-2019-2 《程序设计与数据结构》第七周学习总结

教材学习内容总结

  • 二又查找树是一种含有附加属性的二又树,即其左孩子小于父结点,而父结点又小于或等于右孩子。
  • 1333139-20181101205836432-1764638323.png
  • 每个BinaryTreeNode对象要维护一个指向结点所存储元素的引用,另外还要维护指向结点的每个孩子的引用。
  • 1333139-20181101205923236-1563155843.png
  • 从二又查找树中删除一个元素时,必须推选出另一个结点来代替要被删除的那个结点。
  • 1333139-20181101210014917-620340160.png
  • 二又查找树的最右侧结点会存放最大元素,而其最左侧结点会存放最小元素。
  • 1333139-20181101210101909-629034250.png
  • 1333139-20181101210128758-4479429.png
  • 1333139-20181101210200072-1066709366.png
  • 如果二又查找树不平衡,其效率可能比线性结构的还要低。
  • 右子树的高度减去左子树的高度称为该结点的平衡因子。
  • 树(或树的任何子树)只有两种途径能变得不平衡:插入结点或删除结点。
  • 红黑树
    根结点为黑色。
    红色结点的所有孩子都为黑色。
    从树根到树叶的每条路径都包含同样数目的黑色结点。

教材学习中的问题和解决过程

  • 问题1:书上讲的红黑树不太理解
  • 问题1解决方案:在蓝墨云上找到老师推荐的网站加深理解
    红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。
    红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。
    除了具备该特性之外,红黑树还包括许多额外的信息。

红黑树的每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。
红黑树的特性:

(1) 每个节点或者是黑色,或者是红色。

(2) 根节点是黑色。

(3) 每个叶子节点是黑色。 [注意:这里叶子节点,是指为空的叶子节点!]

(4) 如果一个节点是红色的,则它的子节点必须是黑色的。

(5) 从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

关于它的特性,需要注意的是:
第一,特性(3)中的叶子节点,是只为空(NIL或null)的节点。
第二,特性(5),确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树。

红黑树示意图如下:

1333139-20181102102258691-1693733895.jpg

参考资料
资料
参考文献

  • 问题2:书上的avl树无法理解
  • 问题2解决方案:在网上查询资料:平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。

平衡因子(bf):结点的左子树的深度减去右子树的深度
资料

代码调试中的问题和解决过程

(statistics.sh脚本的运行结果截图)

上周考试错题总结

上周无错题~

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • 博客中图片过少
    • 对于教材内容解析很到位
  • 代码中值得学习的或问题:
    • 代码简洁明了
    • 代码不太规范,注释过少

点评过的同学博客和代码

  • 本周结对学习情况
  • 上周博客互评情况

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周0/00/00/0
第二周800/8002/218/18
第三周600/14003/522/40
第四周700/13003/822/62
第五周400/17003/1122/84
第六周200/19002/1320/94
第七周400/23002/1520/114

参考资料

转载于:https://www.cnblogs.com/huzhitao/p/9892537.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值