Stack栈的基本功能数组实现

鉴于STL的栈有或多或少的功能缺失,于是我们就来手写一个栈。

以下是代码,功能有待完善。

 1 //栈的简单操作  数组实现
 2 int s[100001];                //创建栈
 3 int top = 0;            //创建头指针,一开始在底部
 4 
 5 void Push(int x){
 6     s[++top] = x;        //先移动top 再赋值
 7 }
 8 
 9 void Pop(){
10     if (top == 0){
11         return;
12     }
13     else{
14         --top;            //移动top就好啦,虽然原来的数还存在 但是没关系
15     }
16 }
17 int Top(){
18     if (top == 0){        //如果一个元素都没有,怎么查询嘛
19         return -1;
20     }
21     else{
22         return s[top];
23     }
24 }
25 int Query(int k){        //查询从栈顶往下数第k个元素是多少
26     return s[top+1-k];
27 }

附带一些STL的常用方法:(买一送一)

1 //后进先出
2 stack<int> sta;
3 sta.push(1);
4 sta.top(); //获取栈顶元素
5 sta.pop();
6 sta.empty();
7 sta.size();
8 //出入都是栈顶元素,且都是o(1);
9 sta.top();

更多详情可以看:<stack> - C++ Reference (cplusplus.com)

posted @ 2022-03-28 20:58  Conqueror712  阅读(32)  评论(0)    收藏  举报