数据结构——栈
2022/7/27 23:25:27
本文主要是介绍数据结构——栈,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、基本概念
栈是一个特殊的线性表
栈有上端和下端,上端称为栈顶,下端称为栈底
栈遵循先进后出的原则,即每次弹出最后压入的元素。
我们举个栗子
现在理解什么是栈了吗?
二、手写栈
假如你希望你手写的栈和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()
这篇关于数据结构——栈的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?