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();