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 ...
随机推荐
- Spring整合Shiro 权限 角色 用户关系分析
Spring整合Shiro 权限 角色 用户关系分析 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 前置内容 之前我们学习了,使用注解的方式去完成权限的控制,当然,也是静态的,也就 ...
- Centos7上离线搭建PHP-7.2.26
一.下载php源安装包,解压至/home/php目录下 下载地址:https://www.php.net/distributions/php-7.2.26.tar.gz [root@localhost ...
- C++程序设计实验考试准备资料(2019级秋学期)
程序设计实验考试准备资料 ——傲珂 #include<bits/stdc++.h> C++常用函数: <math.h>头文件 floor() 函数原型:double floor ...
- 01-EF Core笔记之创建模型
使用EF Core的第一步是创建数据模型,模型建的好,下班走的早.EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名.主键字段等,毕竟约定大于配置嘛.如果你想改变默认值,很简单,E ...
- Python--合并2个字典成1个新字典的9种方法
d1 = {'name': 'revotu', 'age': 99} d2 = {'age': 24, 'sex': 'male'} 输出: {'name': 'revotu', 'age': 24, ...
- Ajax 的基本使用
Ajax简介 一门异步的加载技术,局部刷新 异步加载,可以在不重载整个网页的前提下,进行局部刷新 分为原生和JQ两种 JSON数据格式 Json对象转字符串: JSON.stringify() 字符串 ...
- day04逻辑运算符短路、多分支结构(if和switch)、循环结构、while循环
复习 1.运算符和表达式 1)表达式 2)算数运算符 + - * / % 3)关系运算符 > < >= <= == != 4)逻辑运算符 && | ...
- IO测试工具 - 用于IO测试 ; linux benchmarks
IO测试工具,用于磁盘IO测试,下面进行使用列表进行记录: iozone fio dd ioping iotop iostat bonnie++ crystalDisk Atto as-ssd-ben ...
- Shell—定时任务(crontab)
如何让shell脚本每天定时执行? 1.新建需要定时执行的shell脚本,这里为date.sh脚本. #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/u ...
- TopCoder12729 「SRM589Medium」GearsDiv1 二分图最小点覆盖
问题描述 \(N\) 个齿轮每个齿轮有颜色(RGB),有些齿轮之间会咬合,你需要删除尽量少的齿轮并给每种颜色安排方向使得咬合齿轮不同向.问最多保留多少个齿轮.保证不存在两个相同颜色的齿轮咬合. sub ...