全文预览

武汉理工大学理学院电信科数据结构上机实验汇总.doc

上传者:相惜 |  格式:doc  |  页数:41 |  大小:0KB

文档介绍
pe; typedef struct { int *base; // 栈的基址即栈底指针 int *top; // 栈顶指针 int stacksize; // 当前分配的空间}sqstack ; int initstack(sqstack &s)// 构造一个空栈 S { s.base=(int *)malloc(STACKSIZE *sizeof(int)); if(!s.base) { printf(" 分配失败,结束程序!!"); return -1; } s.top=s.base; // 空栈 s.stacksize=STACKSIZE; return 0; } void gettop(sqstack s, int &e)// 若栈不为空,则用 e 返回 S 的栈顶元素{ if(s.top==s.base) printf(" 栈空, 无元素!!"); e=*(s.top-1); printf("%3d\n",e); } int push(sqstack &s,int e)// 进栈操作{ if(s.top-s.base>=s.stacksize) { s.base=(int *)realloc(s.base,(s.stacksize+STACKSIZE)*sizeof(int)); if(!s.base) { printf(" 追加内存失败!!"); return 0; } s.top=s.base+s.stacksize; s.stacksize+=STACKSIZE; } *s.top++=e; return 1; } int pop(sqstack &s,int &e)// 删除栈顶元素{ if(s.base==s.top) { printf(" 空栈无元素!!\n"); return 0; } else { e=*--s.top; return 1; }}

收藏

分享

举报
下载此文档