数据结构简单栈的操作函数.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构简单栈的操作函数

#includestdio.h #includestdlib.h #includemalloc.h typedef int elemtype;//把elemtype定义为整型 #define stackinitsize 100 //定会以初始分配内存为100 #define stackadd 10//定义增加内存为10 typedef struct{//定义栈的结构体 elemtype *base;//栈底指针 elemtype *top;//栈顶指针 int stacksize;//栈的分配内存大小 }sqstack; int initstack(sqstack *S)//创建一个空栈 { S-base=(elemtype *)malloc(stackinitsize*sizeof(elemtype));//分配内存 if(!S-base)exit(-1);//失败则退出 S-top=S-base;//栈底等于栈顶 S-stacksize=stackinitsize;//栈的大小 return 1; } int emptystack(sqstack *S)//判断栈是否为空,空则返回0,否则返回1 { if(S-top==S-base)return 0; return 1; } int gettop(sqstack *S,elemtype *e)//取栈顶指针用e返回 { if(S-top==S-base)return 0; *e=*(S-top-1);//栈顶元素赋给e return 1; } elemtype top(sqstack *S) { if(S-top==S-base)return 0; return *(--S-top); } int push(sqstack *S,elemtype e)//将e压入栈中 { if(S-top-S-base=S-stacksize)//如果栈满 { S-base=(elemtype *)realloc(S-base,(S-stacksize+stackadd)*sizeof(elemtype));//改变初始分配的内存 if(!S-base)exit(1); S-top=S-base+S-stacksize; S-stacksize+=stackadd; }*S-top++=e; return 1; } int pop(sqstack *S,elemtype *e)//出栈,把栈顶元素赋给e,栈减1 { if(S-top==S-base) { printf(这是一个空栈!); return 0; } *e=*--S-top; return 1; } int destroy(sqstack *S)//销毁一个栈 { free(S); return 1; } main() { sqstack S; elemtype a[100]; elemtype e,b,c; int i,n; printf(请输入你要输入的元素个数:); scanf(%d,n); for(i=0;in;i++) { printf(请输入第%d个元素(整型):,i+1); scanf(%d,a[i]); } initstack(S); for(i=0;in;i++) { push(S,a[i]); } gettop(S,b); printf(栈顶元素是:%d\n,b); c=top(S); printf(%d\n,c); printf(出栈:); printf(栈顶); for(i=0;in;i++) { pop(S,e); printf(-%d,e); } printf(\n); }

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档