20182320《Program Design and Data Structures》Learning Summary Week9
20182320《Program Design and Data Structures》Learning Summary Week9
1.Summary of Textbook's Content
1.1 Chapter 15:Tree
1.1.1 Concept of Tree:
'Tree' is a data sturcture,which is non-linear. It consists of nodes and edges.

1.1.2 Some important concepts:
The only top node is called root.For example,in the picture above,A is the root of the tree.
The nodes connected with nothing is called leaf.For example,in the picture above,nodes with '#' are all leaves of the tree.
When a node's top is connected to another node,we define that the latter one is the parent of the former one.For example,in the picture above,A is the parent of B and C.
When a node's bottom is connected to other node(s),we define that the latter one(s) is(are) child(children) of the former one.For example,in the picture above,B and C are children of B and C.
When some nodes are in the same layer,like D and E in the picture,we call that they are siblings of each other.
When a tree is a part of another tree,we called the former one the subtree of the latter one.
A node's path length means the number of edges traveled by the path from root to the node.
The height/depth of a tree means the length of the longest path in a tree from its root to leaves.
A tree's order means the number of the children of a node that has the most children.
When the most children of a tree's nodes is n,we called the tree n-ary tree.
1.1.3 Traversal
(1)preorder traversal
Access the root first and then access other nodes from left to right.
(2)inorder traversal
Access the left subtree first,then access the root,the last is the right subtree.
(3)postorder traversal
Similar with the traversals above,but access the root last.
1.2 Chapter 16:Binary Search Tree
1.2.1 Concept of Binary Search Tree:
Binary Search Tree is originated from Tree,but has a rule about the arrangements of the contents.
The rule is: When we set a root here, the node that has a smaller element than the root's,should be set as the leftnode of the root.And on the contrary, a node with a bigger element should be set as the rightnode of the root.It goes all the way down according to this rule.
2.Problems and Solutions in Textbook's Learning
Problem 1:
When it comes to the implements of LinkedBinaryTree,the codes in the textbook involves some knowledge of Iterator,which made me confused.
Solution 1:
CSDN:

From here I learned that Iterator is a great way of implementing Tree Traversal.
3.Problems and Solutions in Code Debugging
Problem 1:
When programming PP16.6,the programme just stopped after outputting a single line.

Solution 1:
The problem was found as below:


Code Management

Summary of Mistakes in Exams(Last Week)
Mistake 1:
Typically, in heap implementations, we keep track of the position of the last node or, more precisely, the last leaf in the tree.
A.root
B.internal node
C.leaf
D.tree
Correct Answer:C
Mistake by:A
Conclusion 1:
Just because of carelessness.
Mutual Evaluation
Commented Blogs
- Mutual Blog Evaluation(This Week)
- 20182307
- Paring Study Details
- Tree
- BinarySearchTree
- Mutual Blog Evaluation(Last Week)
Others
Since Tree is a non-linear data structure,it took me a lot of time to comprehend it.Tree has some advantages in searching and sorting,but its travesal,especially when implemented by Inheritance,still requires further study to make sense of.
Progress Bar
| CodeLines(New/Accumulation) | Blogs' number(New/Accumulation) | Learning hours(New/Accumulation) | Important progress | |
|---|---|---|---|---|
| Goal | 10000 lines | 30 blogs | 400 hours | |
| Week1 | 208/208 | 2/2 | 9/9 | |
| Week2 | 258/466 | 2/4 | 15/24 | |
| Week3 | 693/1159 | 2/6 | 22/46 | |
| Week4 | 1383/2542 | 2/8 | 30/76 | |
| Week5 | 1300/3842 | 2/10 | 22/98 | |
| Week6 | 1998/5840 | 2/12 | 24/122 | |
| Week7 | 2901/8741 | 2/14 | 30/152 | |
| Week8 | 3556/12297 | 2/16 | 30/182 |
20182320《Program Design and Data Structures》Learning Summary Week9的更多相关文章
- 20162314 《Program Design & Data Structures》Learning Summary Of The Ninth Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Ninth Week ...
- 20162314 《Program Design & Data Structures》Learning Summary Of The Seventh Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Seventh Wee ...
- 20162314 《Program Design & Data Structures》Learning Summary Of The Fifth Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Fifth Week ...
- 20162314 《Program Design & Data Structures》Learning Summary Of The Second Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Second Week ...
- 20162314 《Program Design & Data Structures》Learning Summary Of The First Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The First Week ...
- 20162314 《Program Design & Data Structures》Learning Summary Of The Eleventh Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Eleventh We ...
- 20162314 《Program Design & Data Structures》Learning Summary Of The Tenth Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Tenth Week ...
- 20162314 《Program Design & Data Structures》Learning Summary Of The Eighth Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Eighth Week ...
- 【Python学习笔记】Coursera课程《Python Data Structures》 密歇根大学 Charles Severance——Week6 Tuple课堂笔记
Coursera课程<Python Data Structures> 密歇根大学 Charles Severance Week6 Tuple 10 Tuples 10.1 Tuples A ...
随机推荐
- 小白学 Python 爬虫(21):解析库 Beautiful Soup(上)
小白学 Python 爬虫(21):解析库 Beautiful Soup(上) 人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前 ...
- MarkDown快速入门(typora)
MarkDown快速入门(typora) 1.代码块: //代码块语法: ```java ```shell 1.java代码 package com.yjx.jdbc import java.sq ...
- IDEA 支持scala开发
IDEA支持scala开发,需要安装scala插件,并且pom.xml也需要添加对应依赖. 1. 安装scala插件 下载地址:https://plugins.jetbrains.com/plugin ...
- 新安装mariadb远程登陆配置及相关问题排查
前言: 安装过程不再赘述,直接说问题,mysql的远程连接需要解决两个问题:1.允许root用户远程连接.2.允许任意ip远程连接数据库.当然,在测试和解决问题之前,得首先保证你的数据库与远程主机之间 ...
- Git详细教程之创建本地仓库和连接Github仓库
首先要知道不只有代码,任何类型的文件都可以进行版本控制,版本控制很重要的一个特性就是你可以随时修改,比如git会记录你的任何操作,如果你想要回退到任何一个历史操作,你可以通过git轻松达到. 本地仓库 ...
- c语言入门到精通怎么能少了这7本书籍?
C语言作为学编程最好的入门语言,对一个初进程序大门的小白来说是很有帮助的,学习编程能培养一个人的逻辑思维,而C语言则是公认的最符合人们对程序的认知的一款计算机语言,很多大学都选择了使用C语言作为大学生 ...
- 程序员offer沟通的4个基本原则
常柱 架构未来 你需要就一份新工作进行沟通时:比如你的薪水.福利,或者我个人最喜欢的每周工作时间缩短等,当公司问你“你想要多少?”或者“这是我们的报价,你说呢?” 最后关于薪资的谈话可能是最伤脑筋 ...
- NPOI 获取单元格的值
1.日期格式的坑 var cell = row.GetCell(i);//获取某一个单元格 var value = ""; if (cell != null) { if (cell ...
- 【代码审计】ESPCMSP8(易思企业建站管理系统)漏洞报告
0x00简介 项目名称:ESPCMS-P8(易思企业建站管理系统) 测试平台:Windwos 版本信息:P8.19082801稳定版 更新时间:2019-08-30 00:56:32 网站官网:htt ...
- Android中Parcelable的使用
转载请标明出处 :https://www.cnblogs.com/tangZH/p/10998065.html Parcelable与Serializable Serializable是Java为我 ...