zoukankan      html  css  js  c++  java
  • 《程序设计与数据结构》第9周学习总结

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

    教材学习内容总结

    本周学习了教材第十八章:堆和优先队列的相关内容。

      • 堆是一棵完全二叉树
      • 堆中的每个元素大于等于(或小于等于其所有子结点的值)。
    • 向最大堆中添加一个元素的方法:将元素添加为新的叶结点,同时保持树是完全树,然后将该元素向根的方向移动,将它与父结点对换,直到其中的元素大小关系满足要求时为止。
    • 从最大堆中删除最大元素的方法:删除树的“最后”的叶结点(最后一层中最右边的叶结点),将它放到根上,然后将它下移至满足元素关系的位置。
      • 优先队列
        • 更高优先级的项排在前面
        • 具有相同优先级的项采用先进先出的规则。

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

    • 教材上关于优先队列的描述太少了,我光看这一个代码看不明白优先队列是怎样构建的。
    • 在网上看了另外一两个构建和应用的代码,我对优先队列有了一点初步的了解。堆在加入同优先级项先进先出之后也就是一个优先队列。它的优先级根据值的大小已经确定了,因为堆的父结点的值总大于等于或小于等于子结点的值。也就是说优先队列有两个重要元素:优先级prioiry,顺序order:他们共同构成堆构建优先序列时元素的为止。书上的代码中prio与在创建结点的时候手动输入了,order没增加一个元素就+1。campareTo方法里面把order放在prio的比较之后也就构成了先比较优先级后比较先后顺序的过程。

    代码托管

    image

    上周考试错题总结

    • image!
    • 的确有四种遍历树的方法,但层序遍历是通过队列实现的,并不recursively(递归地)。

    其他(感悟、思考等,可选)

    最近感觉学习有进步,加油努力

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
    目标 5000行 30篇 400小时
    第一周 66/200 1/1 6/10
    第二三周 370/400 2/3 12/18
    第四五周 400/800 2/5 24/42
    第六七周 800/1600 3/8 36/54
    第八九周 1400/3000 2/10/ 22/76
    • 计划学习时间:12小时

    • 实际学习时间:10小时

  • 相关阅读:
    Windows下图文详解PHP三种运行方式(php_mod、cgi、fastcgi)
    【强烈推荐】利用NAT、Host-Only双虚拟网卡,实现Virtual Box中CentOS6.3联网
    PHP批量清空删除指定文件夹内容
    MySQL收藏
    Eclipse快捷键与使用技巧总结
    “知乎网”技术方案初探
    PHP数组常用函数
    PHP常用字符串的操作函数
    Linux下,如何给PHP安装pdo_mysql扩展
    PHP二维数组排序(list_order)
  • 原文地址:https://www.cnblogs.com/cs162315/p/7789134.html
Copyright © 2011-2022 走看看