看图轻松理解数据结构与算法系列(基于数组的栈)

前言

推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。

栈是一种线性存储结构且运算受限的线性表,它的插入和删除运算操作被限制在表的一端,该端称为栈顶,而另外一端则称为栈底。

栈中的数据以后进先出(Last In First Out 即LIFO)方式进出栈。

栈的实现

栈的实现方式有多种方式,主要是使用不同的结构来存储栈元素,比如使用数组、单向链表、双向列表等。这里看数组方式的实现。

实现的主要三要素是数组、当前栈顶下标以及栈操作集。数组用于存放元素,当前栈顶下标用于指引操作的位置,栈核心操作为push和pop,即进栈和出栈。栈存放的元素不能超过数组的长度。

《看图轻松理解数据结构与算法系列(基于数组的栈)》

push

"the","monster","is","coming"四个字符串分别进行 push 操作,

《看图轻松理解数据结构与算法系列(基于数组的栈)》

《看图轻松理解数据结构与算法系列(基于数组的栈)》

《看图轻松理解数据结构与算法系列(基于数组的栈)》

《看图轻松理解数据结构与算法系列(基于数组的栈)》

pop

对栈中进行两次 pop 操作,

《看图轻松理解数据结构与算法系列(基于数组的栈)》

《看图轻松理解数据结构与算法系列(基于数组的栈)》

————-推荐阅读————

我的开源项目汇总(机器&深度学习、NLP、网络IO、AIML、mysql协议、chatbot)

为什么写《Tomcat内核设计剖析》

我的2017文章汇总——机器学习篇

我的2017文章汇总——Java及中间件

我的2017文章汇总——深度学习篇

我的2017文章汇总——JDK源码篇

我的2017文章汇总——自然语言处理篇

我的2017文章汇总——Java并发篇

跟我交流,向我提问:

《看图轻松理解数据结构与算法系列(基于数组的栈)》

欢迎关注:

《看图轻松理解数据结构与算法系列(基于数组的栈)》

    原文作者:算法小白
    原文地址: https://juejin.im/post/5b6502a3f265da0f9313c409
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞