顺序栈的实现

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

顺序栈的实现

#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);

}

}

相关文档
最新文档