ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据结构——栈

2022-07-27 20:35:29  阅读:147  来源: 互联网

标签:压入 int void 元素 栈顶 手写 数据结构


一、基本概念

栈是一个特殊的线性表

栈有上端和下端,上端称为栈顶,下端称为栈底

 

栈遵循先进后出的原则,即每次弹出最后压入的元素。

我们举个栗子

现在理解什么是栈了吗?

二、手写栈 

假如你希望你手写的栈和STL的栈功能一样,你就需要多打写函数的代码来弥补手写的缺陷了(如果你想偷懒,跳过这一部分绝对是最佳选择)

首先,你可以定义一个数组来模拟栈,t表示数组模拟的栈的大小

后面你就可以自己写栈函数了

int a[MAXN],t=0;
void init(){//将栈初始化
    t=0;
}
int size(){//询问栈的大小
    return t;
}
bool empty(){//判断栈是否为空栈,如果是,返回true
    return t==0;
}
void push(int x){//压入元素x
    a[++t]=x;
}
void pop(){//弹出栈顶元素
    t--;
}
int top(){//询问栈顶元素
    return a[t];
}

三、STL栈

栈是有自己的写法的,不需要自己手写(因为太累了>_<)

写法如下

一、头文件

#include<stack> 记住就好

二、定义

stack<元素类型> s;

三、栈函数

1.压入元素   

s.push(x);//压入元素x

2.弹出元素

s.pop();

3.询问栈顶元素

s.top()

4.判断是否为空栈

s.empty();//如果s是空串,返回true

5.元素数量

s.size()

标签:压入,int,void,元素,栈顶,手写,数据结构
来源: https://www.cnblogs.com/hzy-ygkl/p/16526183.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有