标签:master 根据 一周 head first eve 查找 git header
对每一结点,它小于或等于其左孩子和右孩子
1.将元素添加为新的叶节点,同时保持树是完全树。
2.将该元素向根的方向移动,将它与父结点对换,直到其中的元素关系满足要求为止。
如图所示:
与次优二叉树相对,二叉排序树是一种动态树表。其特点是:树的结构通常不是一次生成的,而是在查找过程中,当树中不存在关键字等于给定值的结点时再进行插入。新插入的结点一定是一个新添加的叶子结点,并且是查找不成功时查找路径上访问的最后一个结点的左孩子或右孩子结点。
1.首先执行查找算法,找出被插结点的父亲结点。
判断被插结点是其父亲结点的左、右儿子。将被插结点作为叶子结点插入。
若二叉树为空。则首先单独生成根结点。首先执行查找算法,找出被插结点的父亲结点。
判断被插结点是其父亲结点的左、右儿子。将被插结点作为叶子结点插入。
若二叉树为空。则首先单独生成根结点。
2.执行删除结点算法
在二叉排序树删去一个结点,分三种情况讨论:
1.若结点为叶子结点,即左子树和右子树均为空树。由于删去叶子结点不破坏整棵树的结构,则可以直接删除此子结点。
2.若结点只有左子树或右子树,此时只要令或直接成为其双亲结点的左子树或右子树即可,作此修改也不破坏二叉排序树的特性。
3.若结点的左子树和右子树均不空。在删去结点之后,为保持其它元素之间的相对位置不变,可按中序遍历保持有序进行调整,可以:
令结点的直接前驱(或直接后继)替代该结点,然后再从二叉排序树中删去它的直接前驱(或直接后继)即让结点的左子树(如果有的话)成为结点左子树的最左下结点(如果有的话),再让左子树成为结点的左右结点的父结点。
无
正确使用Markdown语法(加1分)
模板中的要素齐全(加1分)
教材学习中的问题和解决过程, (加3分)
感想,体会真切的(加1分)
点评认真,能指出博客和代码中的问题的(加1分)
这一周花了点心思在这一章上面,也好好阅读了很多内容,掌握的还算可以。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第二周 | 700/700 | 1/2 | 10/20 | |
第三周 | 700/1400 | 1/3 | 10/30 | |
第四周 | 500/1900 | 2/5 | 10/40 | |
第五周 | 569/2469 | 1/6 | 10/50 | |
第六周 | 1070/3539 | 1/7 | 10/60 | |
第七周 | 1070/3539 | 1/8 | 10/70 | |
第八周 | 1070/3539 | 2/9 | 10/80 |
计划学习时间:10小时
实际学习时间:10小时
20172330 2018-2019-1 《程序设计与数据结构》第八周学习总结
标签:master 根据 一周 head first eve 查找 git header
原文地址:https://www.cnblogs.com/linanlalala/p/9931484.html