首页 > 学院 > 开发设计 > 正文

线性表-顺序栈

2019-11-08 18:24:56
字体:
来源:转载
供稿:网友
 #include <iostream> #include <string> #include <vector> #include <algorithm> #define MAXSIZE 100 using namespace std;/*顺序栈 */typedef struct{	int *base;//栈底指针 	int *top;//栈顶指针 	int stacksize;//最大容量	}SqStack;//初始化int InitStack(SqStack &S){	S.base = new int[MAXSIZE];	if(!S.base)	{		cout<<"method InitStack() err:内存申请error!"<<endl;		return 0;	}	S.top = S.base;	S.stacksize = MAXSIZE; }  //入栈 int push(SqStack &S,int e) { 	if(S.top-S.base==MAXSIZE) 	{ 		cout<<"method push() err:栈满error!"<<endl; 		return 0;	 }	 *(S.top++) = e;	 return 1;  }   //取栈顶元素  int getTop(SqStack S)  {  	if(S.top!=S.base)  	{  		return *(S.top-1);	  }	  else	  	return -1;   }    //出栈   int pop(SqStack &S)   {   		if(S.top==S.base)   		{   			cout<<"method pop() err:栈空error"<<endl;    			return 0;		   }		   int e = *(--S.top);		   return 1;	} int main(){	SqStack stack;	InitStack(stack);	push(stack,1);	push(stack,2);	push(stack,3);	push(stack,4);	push(stack,5);	pop(stack);	cout<<getTop(stack)<<endl;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表