C++栈和stack

栈是一种只允许在一端进行插入和删除操作的线性表

栈:有 空栈、进栈、栈顶与栈底元素、出栈

栈的特性:后进先出

栈的创建:本质还是栈线表,因此可以创建一个足够大的数组,充当栈结构,再定义一个变量n,用来记录栈中元素个数,同时好可以标记栈顶的位置

const int N = 1e5 + 10;

int stk[N],n;

int main()

{

return 0;

}

进栈:本质就是 顺序表的尾插操作

const int N = 1e5 + 10;

int stk[N],n;

void push(int x)

{

stk[++n] = x;

}

int main()

{

return 0;

}

出栈:不用真的删除元素,只用将元素个数减1,就相当于删除栈顶元素

类比:顺序表的尾删

const int N = 1e5 + 10;

int stk[N],n;

void pop()

{

n--;

}

int main()

{

return 0;

}

查询栈顶元素:因为栈的特殊规定,不支持遍历整个栈中的元素,因此,需要查找栈中元素的时候,中能查找到栈顶元素

const int N = 1e5 + 10;

int stk[N],n;

void top()

{

return stk[n];

}

//判断是否为空

bool empty()

{

return n == 0;

}

//查询有效元素个数

int size()

{

return n;

}

int main()

{

return 0;

}

sract 创建 stack<T. st; T 可以是任意类型的数据 需要头文件 #include<stack>

size:返回栈里实际元素个数

empty:返回栈是否为空

push:进栈

pop:出栈

top:返回栈顶元素,但不会删除栈顶元素

int main()

{

stack<int> st;

//先进栈

for(int i = 1; i ,= 10; i++)

{

st.push(i);

}

while(st.size())

{

cout << st.top() << endl;

st.pop();

}

return 0;

}

相关推荐
dinl_vin16 小时前
FastAPI 系列 ·(四):数据库集成——SQLAlchemy 2.0 异步 ORM 与 Alembic 迁移
java·数据库·fastapi
小羊在睡觉16 小时前
力扣239. 滑动窗口最大值
数据结构·后端·算法·leetcode·go
编码者卢布16 小时前
【Azure Service Bus】Azure Service Bus Java SDK 中 Token 刷新异常的排查思路
java·python·azure
兰令水17 小时前
topcode【随机算法题】【2026.5.20打卡-java版本】
java·开发语言·算法
不吃土豆的马铃薯17 小时前
Spdlog 入门:日志记录器与日志槽基础详解
服务器·开发语言·c++·c·日志·spdlog
此生决int17 小时前
算法从入门到精通——前缀和
c++·算法·蓝桥杯
AI瓦力17 小时前
技术分享 | 彻底解决图片“躺平”问题:Java 后端强制校准图片方向
java
武子康17 小时前
Java-219 RocketMQ Spring Boot 集成指南:生产者与消费者实战
java·spring boot·分布式·kafka·消息队列·rocketmq·java-rocketmq
我星期八休息17 小时前
Linux系统编程—库制作与原理
linux·运维·服务器·数据结构·人工智能·python·散列表
RainCityLucky17 小时前
Java Swing 自定义组件库分享(七)
java·笔记·后端