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的更多相关文章

  1. 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 ...

  2. 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 ...

  3. 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 ...

  4. 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 ...

  5. 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 ...

  6. 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 ...

  7. 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 ...

  8. 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 ...

  9. 【Python学习笔记】Coursera课程《Python Data Structures》 密歇根大学 Charles Severance——Week6 Tuple课堂笔记

    Coursera课程<Python Data Structures> 密歇根大学 Charles Severance Week6 Tuple 10 Tuples 10.1 Tuples A ...

随机推荐

  1. leetcode -- 最长回文子串

    题目: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: ...

  2. vue 组件传递值以及获取DOM元素的位置信息

    1.父组件 select_li.vue 1.1 父组件模板 <template> <div id='selectLi' ref="selectLi"> &l ...

  3. diff命令的妙用

    在读<Writing compilers and Interpreters>一书时需要按章节修改代码,由于实在一行一行比对实在难受,于是想了个办法,利用diff命令比较两章之间代码的修改位 ...

  4. C# yield关键字

    关于yield关键字,网上有很多文章介绍了,但是看了之后,虽然明白了"哦,原来是这么回事",但是在日常开发中并没有真正的用起来,所以,写此一篇,介绍一下在真正的项目中怎么使用这个关 ...

  5. DataSet、DataTable、DataView三者关系及DataView 常见用法

    DATASET   可以理解为是个数据库. DATATABLE  可以理解为是个数据表. DATAVIEW   可以理解为是表的视图. dataset 数据集合可以包含多个datatable,而dat ...

  6. c++--语言本身

    c++ 面向对象概念(cout cin 类.对象 面向对象和面向过程求解问题) 易犯错误模型(引入成员函数的必要性) C语言和C++语言的关系 namespace 定义(嵌套).使用.标准命名空间st ...

  7. com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

    1.错误显示 com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details log提示:Generate Si ...

  8. LAMP环境搭建与配置(1)

    安装和配置MySQL.Apache.PHP 概念 LAMP是Linux Apache MySQL PHP 的简写,把Apache.MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的 ...

  9. linux globbing文件名通配

    globbing:文件名通配 元字符: *:匹配任意长度的任意字符 ?:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [a-z]或者[A-Z]或者[[:alpha:]]:匹配任意一个字母 [[ ...

  10. 缓存keep-alive

    keep-alive缓存 如果没有缓存,每点击一次导航,内容区就会创建一个组件,该组件会经历整个生命周期,每点击一次,就会创建一个组件,比较浪费性能,这时,我们就要考虑到是否能将点击过的已创建的组件进 ...