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

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

教材学习内容总结

第十章

二叉查找树

1.二叉查找树是一种含有附加属性的二叉树,即其左孩子小于父结点,父结点小于或等于右孩子

2.一棵由n个结点随机构造的二叉查找树的高度为lgn,所以顺理成章,二叉查找树的一般操作的执行时间为O(lgn)。但二叉查找树若退化成了一棵具有n个结点的线性链后,则这些操作最坏情况运行时间为O(n)

      操作                          说明                              

    addElement                往树中添加一个元素                      

    removeElement             从树中删除一个元素                      

    removeAllOccurrences      从树中删除所指定元素的任何存在            

    removeMin                 删除树中的最小元素                        

    removeMax                 删除树中的最大元素                       

    findMin                   返回一个指向树中最小元素的引用            

    findMax                   返回一个指向树中最大元素的引用

3.链表实现二叉查找树:每个BinaryTreeNode中的对象要维护一个指向结点存储元素的引用,还要维护指向结点的每个子树的引用

平衡二叉树(AVL树)

1.本身首先是一棵二叉查找树。带有平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1。

红黑树

1.本质上是一棵二叉查找树,但它在二叉查找树的基础上增加了着色和相关的性质使得红黑树相对平衡,从而保证了红黑树的查找、插入、删除的时间复杂度最坏为O(log n)

2.根结点为黑色。

3.每个叶子结点(null)是黑色。

4.从树根到树叶的每条路径都包含有同样数目的黑色结点(黑键数)。

5.如果一个结点的颜色为红色,那么它的子结点必定是黑色。

6.在红黑树中,元素的查找仍然是一种O(n)操作,由于红色结点不能有红色孩子,于是路径中至多有一半结点时红色结点、至少有一半结点是黑色结点,据此我们可以论证红黑树的最大高度约为2*logn,于是遍历最长路径的序仍然是logn。(即最长遍历路径相同。)

树的旋转

1.添加或删除红黑树中的节点之后,红黑树就发生了变化,可能不满足红黑树的5条性质,也就不再是一颗红黑树了,而是一颗普通的树。而通过旋转,可以使这颗树重新成为红黑树。简单点说,旋转的目的是让树保持红黑树的特性。

2.当一棵树的最大路径长度大于log2^n,或最小路径长度小于log2^n-1时,就要平衡化该树。当左子树过长,则对左子树进行右旋,若右子树过长,则对右子树进行左旋。若左子树的右子树过长,进行左右旋。若右子树的左子树过长,进行右左旋。对X进行左(右)旋,意味着"将x变成一个左(右)节点"。

树的插入

1.对于平衡树插入后不平衡的情况,通旋转使树达到平衡。

2.在讨论红黑树的插入操作之前必须要明白,任何一个即将插入的新结点的初始颜色都为红色。这一点很容易理解,因为插入黑点会增加某条路径上黑结点的数目,从而导致整棵树黑高度的不平衡。但如果新结点父结点为红色时(如下图所示),将会违返红黑树性质:一条路径上不能出现相邻的两个红色结点。这时就需要通过一系列操作来使红黑树保持平衡

3.红黑树插入元素后,先旋转为平衡二叉树,而后根据红黑树的五条性质对结点进行染色。

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

  • 问题1:
  • 问题1解决方案:

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

  • 问题1:在做蓝墨云实验的时候,创立了input文件后始终出现filenotfound的异常。

  • 问题1解决方案:询问了赵乾晨同学后,发现自己的input文件始终没有标注位置。

码云链接

结对及互评

博客中值得学习的或问题:

  • 博客排版工整,界面很美观,并且本周还对博客排版、字体做了调整,很用心
  • 问题总结做得很全面:对课本上不懂的代码会做透彻的分析,即便可以直接拿过来用而不用管他的含义

本周结对学习情况

  • 20172315
  • 20172318

结对学习内容

  • p11.3 pp11.8
  • 红黑树

参考资料

posted @ 2018-11-02 19:59  Silver银色  阅读(68)  评论(0编辑  收藏  举报