经典数据结构:栈的详解

简介: 经典数据结构:栈的详解

想要坚持写点什么,那干脆写一个系列吧。想想有什么可以写的呢?程序=算法+数据结构,可见算法和数据结构的重要性。这个系列老诗力求用最简单的语言把算法和数据结构讲得明明白白,由浅到深,有兴趣的话,可以关注一下专栏。

之前的篇章都是给大家讲的算法,今天给大家讲一种数据结构。

数据结构就是属于按照特殊的数据存储方式进行存储和读写。它们都有着自己的规律。今天要给大家讲的是栈。

关于栈的描述

栈(Stack)这个东西是一种线性存储结构,它的特点是“后进先出”。

栈限定只能在栈顶进行插入和删除操作。

(1)栈顶与栈底:可以让元素插入与删除的一端称为栈顶,另一端称为栈底。

(2)压栈:栈的插入操作,叫做进栈,也称压栈、入栈。

(3)弹栈:栈的删除操作,也叫做出栈。

关于栈的操作

s.empty(); //判断栈是否为空,如果是空返回ture,如果非空返回false
s.size(); //返回栈中元素的个数
s.top(); //返回栈顶元素,注意这里不是删除
s.pop(); //弹出栈顶元素,注意这里是直接删除了,没有返回数值
s.push(); //将元素压入栈顶

image.png

我就画一个简图吧,栈像是塞羽毛球的桶一样,只能从顶部拿出或者塞入。他是单向的。

栈的实例代码

#include <stack>
#include <iostream>
using namespace std;
 
int main()
{
    stack<int> mystack;
    int sum = 0;
    for (int i = 0; i <= 10; i++){
        mystack.push(i);
    }
    cout << "size is " << mystack.size() << endl;
    while (!mystack.empty()){
        cout << " " << mystack.top();
        mystack.pop();
    }
    cout << endl;
    system("pause");
    return 0;
}
//size is 11
// 10 9 8 7 6 5 4 3 2 1 0

上面的是c++实例,在c++中别人早就已经封装好栈,我们导入头文件#include<stack>直接用就可以了。

上面的操作是将11个数从0开始压进栈,然后再从栈顶一个一个取出。

更多的干货内容,项目源码,可以关注公众号:诗一样的代码

既然进来了,原创不易。小伙伴点个赞再走呗

相关文章
|
22天前
|
消息中间件 存储 搜索推荐
深入理解栈和队列(二):队列
深入理解栈和队列(二):队列
36 0
|
2月前
|
存储 开发工具
栈存储结构详解
栈存储结构详解
42 7
|
2月前
【栈】数据结构栈的实现
【栈】数据结构栈的实现
|
2月前
|
存储
数据结构--栈和队列
数据结构--栈和队列
|
2月前
|
存储 算法 数据处理
数据结构从入门到精通——栈
栈,作为一种后进先出(LIFO)的数据结构,在计算机科学中扮演着重要的角色。它的特性使得它在处理函数调用、括号匹配、表达式求值等问题时具有得天独厚的优势。然而,如果我们跳出传统思维的束缚,会发现栈的用途远不止于此。
59 0
|
2月前
|
C语言
数据结构之栈详解(C语言手撕)
数据结构之栈详解(C语言手撕)
37 1
|
2天前
|
算法
栈刷题记(二-用栈操作构建数组)
栈刷题记(二-用栈操作构建数组)
|
2天前
栈刷题记(一-有效的括号)
栈刷题记(一-有效的括号)
栈刷题记(一-有效的括号)
|
6天前
|
C语言
数据结构中顺序栈的进栈和出栈用C语言表示
数据结构中顺序栈的进栈和出栈用C语言表示
13 1