顺序栈的实现

顺序栈的实现
顺序栈的实现

顺序栈的实现

#include

#include

#define STACKSIZE 100

#define zhuijia 100

typedef struct{

int *base;

int *top;

int stacksize;

}sqstack;

int initstack(sqstack & s){

s.base=(int*)malloc(STACKSIZE*sizeof(int));

if(!s.base)

printf("Allocate space failure !");

s.top=s.base;

s.stacksize=STACKSIZE;

}

int push(sqstack &s,int e){

if(s.top-s.base>=s.stacksize){

s.base=(int*)realloc(s.base,(s.stacksize+zhuijia)*sizeof(int));

if(!s.base)

printf("Allocate space failure !");

s.top=s.base+s.stacksize;

s.stacksize+=zhuijia;

}

*s.top++=e;

}

int pop(sqstack &s,int &e){

if(s.base==s.top)

return 0;

e=*--s.top;

}

int main(){

sqstack s;

int n,e,i;

if(initstack(s))

printf("success! the stack has been creatted !\n");

printf("请输入进栈元素的个数:\n");

scanf("%d",&n);

printf("请输入进栈元素:\n");

for(i=0;i

scanf("%d",&e);

push(s,e);

}

printf("出栈元素序列:\n");

for(i=0;i

pop(s,e);

printf("%d\n",e);

}

}

相关主题
相关文档
最新文档