zoukankan      html  css  js  c++  java
  • 共享栈

    共享栈,利用栈的动态性使栈空间能够互相补充,存储空间能够得到有效利用

      1 #include <iostream>
      2 using namespace std;
      3 #define stacksize 20
      4 typedef struct 
      5 {    
      6     int stack[stacksize];
      7     int top[2];    
      8 }seqstack;
      9 void initstack(seqstack *s)
     10 {
     11     s->top[0]=-1;
     12     s->top[1]=stacksize;
     13 }
     14 int isempty(seqstack *s)
     15 {
     16     if(s->top[0]==-1&&s->top[1]==stacksize)
     17         return 1;
     18     return 0;
     19 }
     20 int pushstack(seqstack *s,int num,bool flag)
     21 {
     22     if(s->top[0]==s->top[1])
     23     {
     24         cout<<"栈满"<<endl;
     25         return 0;
     26     }
     27     switch(flag)
     28     {
     29         case 0:            /*入左栈*/
     30             s->top[0]++;
     31             s->stack[s->top[0]]=num;
     32             break;
     33         case 1:
     34             s->top[1]--;
     35             s->stack[s->top[1]]=num;
     36             break;
     37         default:
     38             break;
     39     }
     40     return 0;
     41 }
     42 int popstack(seqstack *s,bool flag)
     43 {
     44     switch(flag)
     45     {
     46         case 0:
     47             if(s->top[0]==-1)
     48             {
     49                 cout<<"空栈";
     50                 return 0;
     51             }
     52             else
     53                 s->top[0]--;
     54             break;
     55         case 1:
     56             if(s->top[1]==stacksize)
     57             {
     58                 cout<<"空栈";
     59                 return 0;
     60             }
     61             else
     62                 s->top[1]++;        
     63         default:
     64             break;
     65     }
     66 }
     67 int getstack(seqstack *s,bool flag)
     68 {
     69     switch(flag)
     70     {
     71         case 0:
     72             if(s->top[0]==-1)
     73             {
     74                 cout<<"空栈";
     75                 return 0;
     76             }
     77             else
     78                 cout<<s->stack[s->top[0]]<<endl;
     79                 break;
     80         case 1:
     81             if(s->top[1]==stacksize)
     82             {
     83                 cout<<"空栈";
     84                 return 0;
     85             }
     86             else
     87                 cout<<s->stack[s->top[1]]<<endl;
     88                 break;    
     89         default:
     90             break;
     91     }
     92 }
     93 int main()
     94 {
     95     seqstack s;
     96     initstack(&s);
     97     pushstack(&s,1,0);
     98     pushstack(&s,2,0);
     99     pushstack(&s,3,0);
    100     pushstack(&s,9,1);
    101     pushstack(&s,8,1);
    102     pushstack(&s,7,1);
    103     getstack(&s,1);
    104     popstack(&s,1);
    105     getstack(&s,1);
    106 }
  • 相关阅读:
    Client-Side Attacks
    Web Penetration Testing w3af fierce
    解决kali linux 升级后安装w3af 问题
    Metasploit (二)
    Metasploit
    Dig skipfish proxystrike
    Web Penetration Testing
    Wireless Penetration Testing(命令总结)
    LabView(控件部分)
    Wireless Penetration Testing(7-11 chapter)
  • 原文地址:https://www.cnblogs.com/a1225234/p/4664749.html
Copyright © 2011-2022 走看看