C++栈和stack

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

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

栈的特性:后进先出

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

const int N = 1e5 + 10;

int stkN,n;

int main()

{

return 0;

}

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

const int N = 1e5 + 10;

int stkN,n;

void push(int x)

{

stk++n = x;

}

int main()

{

return 0;

}

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

类比:顺序表的尾删

const int N = 1e5 + 10;

int stkN,n;

void pop()

{

n--;

}

int main()

{

return 0;

}

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

const int N = 1e5 + 10;

int stkN,n;

void top()

{

return stkn;

}

//判断是否为空

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;

}

相关推荐
步行cgn1 小时前
Spring c 命名空间注入详解
java·后端·spring
明月_清风1 小时前
Maven 到底是什么?一篇文章搞懂 Java 项目构建与依赖管理
java·后端·maven
aramae2 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
Rain的Java大神之路2 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
淡海水3 小时前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
Wang's Blog3 小时前
Java 接入Redis: 通用命令与键管理
java·服务器·redis
Wang's Blog3 小时前
Java 接入Redis: 列表集合与有序集合操作命令
java·服务器·redis
Logic1013 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
Ivanqhz3 小时前
SVD++算法
java·服务器·网络·深度学习·神经网络
qq_2518364574 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程