首页 > 其他 > 详细

顺序表的基本操作code

时间:2020-04-30 23:44:24      阅读:79      评论:0      收藏:0      [点我收藏+]
 #define MAXSIZE 10
 typedef struct{
     elemtype data[MAXSIZE];
     int top;  //栈顶指针 
 }SqStack;
 
 //初始化
 void InitStack(SqStack &S){
     S.top=-1;
 } 
 void testStack(){
     SqStack S;  //声明一个顺序栈(分配空间)
     InitStack(S); 
 }
 //判断栈空
 bool StackEmpty(SqStack S){
     if(S.top==-1)
        return true;
     else  return false;
 } 
 //新元素入栈
 bool Push(SqStack &S,int x){
     if(S.top==MAXSIZE-1) //栈满,报错
     return false;
    S.top=S.top+1;       //等价于 
    S.data[S.top]=x;    //S.data[++S.top]=x 
    return true; 
 } 
 //出栈操作
 bool Pop(SqStack &S,int &x){
     if(S.top==-1) return false; //栈空
     x=S.data[S.top];   // x=S.data[S.top--]
     S.top=S.top-1;     //
     return true; 
 } 

 

共享栈:两个栈共享同一片内存空间,两个栈从两边往中间增长

初始化:0号栈栈顶指针初始时top0=-1;1号栈栈顶指针初始时 top1=MAXSIZE

栈满条件:top0+1=top1

顺序表的基本操作code

原文:https://www.cnblogs.com/ikigai18/p/12811676.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!