美文网首页数据结构
数据结构「栈」

数据结构「栈」

作者: 木云先森 | 来源:发表于2019-08-21 14:18 被阅读0次

数组结构后的下一个结构就是栈结构,也就是我们常说的堆栈。这种数据结构的特点就是,只会从栈顶(top)进行数据的写入和输出。

如果对应数组结构比较了解的话,这个数据结构也会很容易一点点弄明白。

首先,我们还是以现实场景作为类比,假设现在我们有个桶装的容器,后续我们需要把不同的颜料块放入桶中,恰好每个颜料块,都能放置一层。那我们用下面的图看下对应的逻辑。

通过上图我们很好明白这种栈结构所谓的从栈顶进行写入和输出,类似的结构还有,厨房放在桌上的一层层的盘子,放置在桌上的一层层的书。

那我们把刚才的放置颜料的桶装结构,换个方式去思考,把这个颜料容器向右放倒。先来示例。



这种操作的方式,就是让大家可以更多维的思考,不管什么样的现实的放置方式,只有抓住栈顶才能做写入和输出,并且按顺序的写入和输出,就能很好的理解这种结构。

我们现在对栈结构进行对应的分析。其实也就是2个操作,就是入栈(push)和出栈(pop)。先给出对应的初始数值,我们可以理解为用数组的方式实现栈结构


1.出栈(pop)



①伪代码

//出栈
func E pop(){
    //取出对应的最后一个数据
    //删除最后一个数据
    return array.removeLast();
}
//底部会有最终的github的详细代码地址

②出栈因为只操作最后一个数据,所以算法时间复杂度为O(1)。
2.入栈(push)



①伪代码

//入栈
func void push(E e){
    //在数据的最后写入数据
    array.add(array.getSize(),e);
}

②入栈也只对最后的数据做操作,所以,在容量足够的情况下,时间复杂度为O(1)

堆栈github

相关文章

  • 栈和队列

    1、栈 栈是一种先进先出的数据结构。栈顶进栈,栈顶出栈。 数据结构 栈的初始化 进栈 出栈 栈的最小值 2、队列 ...

  • 004 go语言实现栈

    1 数据结构 数据结构: 要实现的功能:0 栈的初始化1 获取栈长度2 入栈3 出栈4 清空栈内容5 判断栈是否为...

  • java高级知识点

    1.数据结构 程序=数据结构+算法 栈:后进先出,线性结构 入栈:push 出栈:pop假如已知入栈顺序是ab...

  • 栈和堆以及栈区和堆区的区别

    栈和堆以及栈区和堆区的区别 数据结构中的栈和堆 栈:具有先进后出性质的数据结构 堆:一种经过排序的树形数据结构,节...

  • 数据结构与算法 第二节:栈 栈: 一种先进后出的数据结构。可以想象成手枪的弹夹。 栈的特点: 栈的行为: 栈的代...

  • 2019-07-11—栈

    栈:Java数据结构和算法(四)——栈 string和char一般这么转化: 21、定义栈的数据结构,请在该类型中...

  • 什么是堆栈?

    堆与栈是两种数据结构,并不是一种数据结构,堆是堆,栈是栈。 1、栈:是一种只能在一端进行插入和删除的数据结构。 允...

  • 05--栈 递归

    栈 栈(Stack)又名堆栈,它是一种重要的数据结构。从数据结构角度看,栈也是线性表,其特殊性在于栈的基本操作是线...

  • 18-04-21 python3 算法笔记 002基本数据结构

    线性数据结构 栈,队列,deques,列表其元素在数据结构中的位置由它被添加时的顺序决定。 栈 后进先出栈 LI...

  • 数据结构

    数据结构:要写!!手动!!数据结构非常简洁才可 栈 eg. 弹栈压栈的过程 链表 就是原型链不断的连接,要断去某个...

网友评论

    本文标题:数据结构「栈」

    本文链接:https://www.haomeiwen.com/subject/jaibsctx.html