概述 |
实现树的策略 |
2.树的数组实现之模拟连接策略:
按照先来先服务的基准连续分配数组位置,每个结点存储的是每个孩子(可能还有双亲)的数组索引。不过这种方式增长了删除的成本。
html
3.树的分析:
在n相对较小时,相对于树所涉及的成本,树实现和线性结构之间并不存在特别显著的差异,可是,随着n的增长,树的效率就会愈加引人注意。node
树的遍历 |
2.中序遍历:从根结点开始,访问结点的左孩子,而后时该结点,再而后时任何剩余结点。
git
3.后序遍历:从根结点开始,访问结点的孩子,而后是该结点。
数组
4.层序遍历:从根结点开始,访问每一层的全部结点,一次一层。
数据结构
5.二叉树的遍历:二叉树的遍历是指从根节点出发,按照某种次序依次访问二叉树中全部结点,使得每一个结点被访问一次且仅被访问一次。二叉树的遍历方式有不少,主要有前序遍历,中序遍历,后序遍历。学习
前序遍历
前序遍历的规则是:若二叉树为空,则空操做返回,不然先访问根节点,而后前序遍历左子树,再前序遍历右子树
测试
中序遍历
中序遍历的规则是:若树为空,则空操做返回;不然从根节点开始(注意并非先访问根节点),中序遍历根节点的左子树,而后是访问根节点,最后中序遍历右子树。能够看到,若是是二叉排序树,中序遍历的结果就是个有序序列。
.net
后序遍历
后序遍历的规则是:若树为空,则空操做返回;而后先遍历左子树,再遍历右子树,最后访问根结点,在遍历左、右子树时,仍然先遍历左子树,而后遍历右子树,最后遍历根结点。
设计
二叉树 |
A Perfect Binary Tree(PBT) is a tree with all leaf nodes at the same depth. All internal nodes have degree 2.
一个深度为k(>=-1)且有2^(k+1) - 1个结点的二叉树称为完美二叉树。
3d
3.彻底二叉树(Complete Binary Tree)
A Complete Binary Tree (CBT) is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.
彻底二叉树从根结点到倒数第二层知足完美二叉树,最后一层能够不彻底填充,其叶子结点都靠左对齐。
4.完满二叉树(Full Binary Tree)
A Full Binary Tree (FBT) is a tree in which every node other than the leaves has two children.
换句话说,全部非叶子结点的度都是2。(只要你有孩子,你就必然是有两个孩子。)
注:Full Binary Tree又叫作Strictly Binary Tree。
正确使用Markdown语法(加1分)
模板中的要素齐全(加1分)
教材学习中的问题和解决过程, (加3分)
代码调试中的问题和解决过程, 无问题
感想,体会真切的(加1分)
点评认真,能指出博客和代码中的问题的(加1分)
20172320
基于评分标准,我给以上博客打分:8分。得分状况以下:
这周学的有点麻烦,栈还行,就是链表有点糊涂。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 8/8 | |
第二周 | 1306/1306 | 1/2 | 20/28 | |
第三周 | 1291/2597 | 1/3 | 18/46 | |
第四周 | 4361/6958 | 2/3 | 20/66 | |
第五周 | 1755/8713 | 1/6 | 20/86 | |
第六周 | 3349/12062 | 1/7 | 20/106 |
计划学习时间:10小时
实际学习时间:8小时
改进状况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)