20172312 2018-2019-1 《程序设计与数据结构》第六周学习总结

20172312 2018-2019-1 《程序设计与数据结构》第六周学习总结

教材学习内容总结

第七章

数据结构——树

1.树是一个n(n>=0)个结点的有序合集

2.名词理解

结点:指树中的一个元素;
结点的度:指结点拥有的子树的个数,二叉树的度不大于2;
数的度:指树中的最大结点度数;
叶子:度为0的结点,也称为终端结点;
高度:叶子节点的高度为1,根节点高度最高;
层:根在第一层,以此类推;

3.四种遍历

先序遍历:根->左子树->右子树
中序遍历:左子树->根->右子树
后序遍历:左子树->右子树->根
层级遍历:根->下层

二叉树

1.二叉树定义:由一个结点和两颗互不相交、分别称为这个根的左子树和右子树的二叉树构成(递归定义)

2.二叉树的第h层上至多有2^(h-1)个结点

3.高度度为h的二叉树,至多有2^h-1个结点

4.满二叉树:叶子节点一定要在最后一层,并且所有非叶子节点都存在左child和右child;

5.二叉树操作

getRoot              返回指向二叉树根的引用
isEmpty              判定该树是否为空
size                 判定树中的元素数目
contains             判定指定目标是否在该树中
find                 如果找到指定元素,返回指向其的引用
toString             返回树的字符串表示
iteratorInOrder      为树的中序遍历返回一个迭代器
iteratorPreOrder     为树的前序遍历返回一个迭代器
iteratorPostOrder    为树的后序遍历返回一个迭代器
iteratorLevelOrder   为树的层序遍历返回一个迭代器

完全二叉树

1.完全二叉树:从左到右、从上到下构建的二叉树;

2.结点 h 的子结点为2h和 2h+1(前提是都小于总结点数)

3.结点 h 的父结点为 h/2

教材学习中的问题和解决过程

  • 问题1:关于完全二叉树已知结点数n,求层数h,叶子结点数n0。
  • 问题1解决方案:完全二叉树除h层外,1~h-1层均为一个父节点对应两个子节点(满二叉树),所以对n进行计算log2n,计算得数向上取整即为h。

代码调试中的问题和解决过程

  • 无(除了代码太长太多之外)

码云链接

结对及互评

本周结对学习情况

  • 20172315
  • 20172318

结对学习内容

  • pp10.4 pp10.5
  • 完全二叉树

学习进度条

 代码行数(新增/累积)博客数量(新增/累积)学习时长(新增/累积)
目标 5000行 30篇 400小时  
第一周 22/22 1/1 12/12  
第二周 203/225 2/3 25/37  
第三周 574/799 1/4 15/52  
第四周 1283/1882 2/6 20/72  
第五周 986/2868 1/7

20/92

第六周 1037/3905 1/8

25/107

参考资料

数据结构——树——知识点总结

posted @ 2018-10-25 19:30  Silver银色  阅读(160)  评论(1编辑  收藏  举报