要求:本次加分作业是要阅读这篇文章“ Stack的三种含义 ”,以及文章下方的评论,然后做出总结。
----------------------------------------华丽的分割线-----------------------------------------------
文章简单概括
文章作者从数据结构,代码运行方式和内存区域对Stack进行了论述,文章简单易懂,配图也对解释说明起了很大作用。不得忽视的是文章下的评论对文章的表述不清晰或者错误之处做了指明和修正,对Stack这三方面做了总结。从中我也感受了分享和讨论的精神所带来的积极影响。
1、Stack就是一种后进先出(Last in, first out)的数据结构。以下这张图(来自原文)大概表达了后进先出的概念。也就是最后存放进Stack的,会最先被取出来。
举个例子,洗碗的时候我们将碟子一个个堆放在一起,最晚洗好的放在了最上方,而想要一个个拿出来的时候,就从最上方开始一个个拿下来。这样一种过程,就是后进先出。
2、Stack是调用栈。其实这时候向同一个方面堆积的就是函数或者子程序等等之类的了。
3、Stack是一种内存区域,存放程序运行时的局部的、占用空间确定的数据。而对于不能确定空间大小的数据,一般采用Heap存储。
总结
看文章举出3个含义来解释Stack,其实仔细一想,你就会明白。上面3个含义说的其实就是一个意思。对于Stack的理解,只要把握住“后进先出”这个本质的原则就好了。正如文章下方某一个评论者所说“第一种语义是基础,第三种语义是第一种的实现,第二种语义是第三种语义的表现”。
阅读感想
阅读一篇好文章,能让人更清晰地明白某个概念或者某个事情的情况,这个事情是非常受益地。将知识分享出来的人是值得称赞的,提出建设性意见、发起有意义讨论的人是值得表扬的。这样一种分享的氛围有助于大家的学习,应当得到提倡。