首页 > 代码库 > c++ 栈(顺序表)
c++ 栈(顺序表)
栈可以用顺序表也可以用链表来储存内容,本文采用顺序表(数组)来保存内部元素。代码如下: 1 #include <iostream>
2 using namespace std; 3 4 class MyStack 5 { 6 private: 7 int l; 8 int count; 9 int * array; //这里要注意,不要用array[l],成员变量不能用成员变量初始化。 10 public: 11 MyStack(int len) 12 { 13 l=len; 14 count=0; 15 array=new int[l]; 16 }; 17 MyStack() //默认构造函数,最大容量为50. 18 { 19 l=50; 20 count=0; 21 array=new int[l]; 22 } 23 24 void push(int n) 25 { 26 if(count>l-1) 27 { 28 cout<<"out of boundary"<<endl; 29 return ; 30 }else 31 { 32 array[count]=n; 33 count++; 34 } 35 } 36 void pop() 37 { 38 if(count<0) 39 { 40 cout<<"empty!"<<endl; 41 }else 42 { 43 array[count--]=0; 44 } 45 } 46 47 int top() 48 { 49 return array[count]; 50 } 51 52 bool isEmpty() 53 { 54 return (count==0); 55 } 56 int stackSize() 57 { 58 return count+1; 59 } 60 }; 61 62 int main() 63 { 64 MyStack ms(10); 65 ms.push(10); 66 ms.push(4); 67 ms.push(3); 68 if(ms.isEmpty()) 69 cout<<"为空"<<endl; 70 cout<<"不为空"<<endl; 71 cout<<"长度为:"<<ms.stackSize()<<endl; 72 ms.pop(); 73 cout<<"出栈后顶部元素为:"<<ms.top()<<endl; 74 }
运行结果:
c++ 栈(顺序表)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。