# 20162312 2017-2018-3 《程序设计与数据结构》第5周学习总结

教材学习内容总结

学习目标

  • 数据结构

  • 抽象数据类型

  • 用链表和数组实现栈

  • 栈和数组以及链表的结合使用。

  • 链表

  • 链表栈、数组栈

  • 栈的示意图

  • 栈的基本运算
(1)InitStack(S)  
      构造一个空栈S。  
 (2)StackEmpty(S)  
      判栈空。若S为空栈,则返回TRUE,否则返回FALSE。  
 (3)StackFull(S)  
      判栈满。若S为满栈,则返回TRUE,否则返回FALSE。  
注意: 该运算只适用于栈的顺序存储结构。  
 (4)Push(S,x)  
      进栈。若栈S不满,则将元素x插入S的栈顶。  
 (5)Pop(S)

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

  • 问题1:不是很理解抽象数据类型

  • 问题1解决方案:在网上查资料了解到:抽象数据类型(ADT)是指一个数学模型及定义在该模型上的一组操作。它仅取决于其逻辑特征,而与计算机内部如何表示和实现无关。比如整型,各个计算机,都有“整型”类型,也需要整形运算,那么整型其实就是一个抽象数据类型。

  • 问题2:书上哨兵节点描述过于抽象,不是很理解

  • 问题2解决方案: 在网上查找了相关的解释:

假设某个漆黑的夜晚,诸位在海岸的悬崖边上玩一个游戏。诸位站在距悬崖边缘100米的地方,地上每隔1米就任意放1件物品。请找出这些物品中有没有苹果。诸位每前进1米就要捡起地上的物品,检查是否拿到了苹果,同时还要检查有没有到达悬崖的边缘(不检查的话就有可能掉到海里),也就是说要对这两种检查反复若干次。使用了哨兵以后,就要先把起点挪到距悬崖边缘101米的地方,再在悬崖的边缘放置一个苹果。这个苹果就是哨兵,通过放置哨兵,诸位就一定能找到苹果了。每前进1米只需检查检验到的物品是不是苹果就可以了。发现是苹果以后,只需站在原地再检查一步开外的情况。如果还没有到达悬崖边缘,就意味着找到了真正要找的苹果。已经达到了悬崖边缘,则说明现在手中的苹果是哨兵,而没有找到真正要找的苹果。

作者:知鉴
链接:https://www.zhihu.com/question/27155932/answer/76553044

错题及总结(活动未结束,暂时无法看具体解析)

代码托管

结对及互评

本周结对学习情况

  • 20162324

  • 结对学习内容

    • 讨论了结点类等知识点

思考

学习还需要进一步深化

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 6/6
第二、三周 403/403 2/3 14/20
第4、5周 1452/1855 2/5 8/28

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:8小时

  • 实际学习时间:9小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2017-10-15 12:39  20162312张家铖  阅读(130)  评论(0编辑  收藏  举报