共享栈

结构

 


  1. #define MAXSIZE 20 
  2. typedef int SElemType; 
  3. typedef struct { 
  4.     SElemType data[MAXSIZE]; 
  5.     int top1; 
  6.     int top2; 
  7. }SqDoubleStack; 

入栈

 


  1. bool push(SqDoubleStack *S,SElemType e,int stackNumber){ 
  2.     if((S->top1 + 1) == S->top2){ 
  3.         return false;//栈满 
  4.     } 
  5.     if(stackNumber == 1){ 
  6.         S->data[++(S->top1)] = e; 
  7.     } 
  8.     else if(stackNumber == 2){ 
  9.         S->data[--(S->top2)] = e; 
  10.     } 
  11.     return true

出栈

 


  1. bool pop(SqDoubleStack *S,SElemType *e,int stackNumber){ 
  2.     if(stackNumber == 1){ 
  3.         if(top1 == -1){//栈1为空  
  4.             return false
  5.         } 
  6.         *e = S->data[(S->top1)--]; 
  7.     } 
  8.     else if(stackNumber == 2){ 
  9.         if(S->top2 == MAXSIZE){//栈2为空  
  10.             return false
  11.         } 
  12.         *e = S->data[(S->top2)++]; 
  13.     } 
  14.     return true;  

 

转载于:https://blog.51cto.com/fanaticssk/833490

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-16
  • 2021-12-20
  • 2021-05-26
  • 2022-12-23
  • 2021-10-03
猜你喜欢
  • 2022-01-14
  • 2022-01-29
  • 2021-11-03
  • 2021-07-21
相关资源
相似解决方案