• 20162317 2017-2018-1 《程序设计与数据结构》第七周学习总结


    20162317 2017-2018-1 《程序设计与数据结构》第七周学习总结

    教材学习内容总结

    • 1、树:非线性集合
    • 2、树中包含的结构以及这些结构的定义
    • 3、树分类的依据
    • 4、遍历树的方法以及分析
    • 5、用链表以及数组实现二叉树

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

    问题1:先序、中序、后序遍历逻辑上的遍历仍然学不通透,因此下面找三个树图来练习三种遍历方法:

    题目1:

    先序:63-55-42-10-45-58-90-70-67-83-99

    中序:10-42-45-55-58-63-67-70-83-90-99

    后序:10-45-42-58-55-67-83-70-99-90-63

    题目2:

    先序:11-7-3-9-18-16-14-26

    中序:3-7-9-11-14-16-18-26

    后序:3-9-7-14-16-26-18-11

    题目3:

    先序:10-3-2-4-9-11-20-8-13-21

    中序:2-3-4-11-9-20-10-13-8-21

    后序:2-11-20-9-4-3-13-21-8-10

    问题2:有100个结点的完全二叉树,其高度是多少?叶结点数是多少?

    问题2解决方案:

    • 高度:由二叉树的性质可以指导,高度等于[log2n]+1,100个结点的话就可以得到[log2 100]+1,取整计算后得到答案是7。

    • 叶结点:设叶结点的个数为n0度为2的结点数有n2个,则有n0 = n2+1,设完全二叉树中度为1的结点数为n1个,n1为1或0,因此就有n0+n1+n2=100, 得到:n0+n1+n0-1=100, 2*n0 + n1 = 101,从此可看出,n1不能为0,必为1,从而得到2xn0=100,n0=50.所以叶结点有50个。

    问题3:高度为h的完全二叉树至少有多少个结点?至多有多少个结点?

    问题3的解决方案:

    • 至多的结点数:这个比较简单,根据公式:2^h-1即这种情况,即倒数第二层的最后一个结点连着一个叶结点的情况。

    -至少的结点数:倒数第二行第一个结点并没有连着结点即可,即2^(h-1)个结点

    问题4:已经知道一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,...,nm个度为m的结点,问该树中有多少个叶结点?

    问题4的解决方案:根据和同学的讨论以及和网上资料的查阅:

    设n为总结点个数,n0为叶子结点(即度为0的结点个数),则有:
    n=n0+n1+n2+…+nm (1)
    又有(分支总数):n-1=n11+n22+n33+…+nmm (2)
    (因为一个结点对应一个分支)
    式(2)-(1)得:
    1=n0-n2-2n3-…-(m-1)nm
    则有:n0=1+n2+2n3+…+(m-1)nm

    问题5以及解决方案:对二叉树遍历操作的深入思考

    代码托管

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
    目标 5000行 15篇 400小时
    第一周 200/200 2/2 20/20
    第二周 20/220 1/3 20/40
    第三周 645/865 1/4 14/54
    第五周 654/1519 1/5 18/72
    第六周 436/1955 1/6 16/88
    第七周 839/2794 2/8 20/108
    • 计划学习时间:18小时

    • 实际学习时间:20小时

    • 改进情况:遇到不会的问题会做一定的深究,要求自身对基础更为扎实。

  • 相关阅读:
    上传图片时判断图片的模式GRB或CMYK
    正则表达式的6中使用
    SqlServer获得存储过程的返回值
    从零学习wcf(一)
    等比例缩小图片
    模仿Jquery Tab
    jquery ajax调用一般处理程序
    一种感觉
    "敏捷软件开发" 读书笔记叙
    荣迁贵宝地
  • 原文地址:https://www.cnblogs.com/VersionP1/p/7699635.html
Copyright © 2020-2023  润新知