以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 栈的实现 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=88044) |
-- 作者:葛靖青001 -- 发布时间:11/30/2010 8:45:00 AM -- 栈的实现 【转自互联网】 #include<stdio.h> #include<conio.h> #include<stdlib.h> #define STACK_MAX_SIZE 10 //栈最大数据空间 #define ERROR_STACK_EMPTY -1 #define ERROR_MALLOC -2 typedef int SData; //栈数据类型 typedef struct { SData *pSBase; int iSize; }STACK; void InitStack(STACK *s) { //分配空间 s->pSBase=(SData *)malloc(STACK_MAX_SIZE*sizeof(SData)); if(s->pSBase==NULL) exit(ERROR_MALLOC); s->iSize=0; } void Push(STACK *s,SData e) { if(s->iSize>=STACK_MAX_SIZE) { printf("栈空间不足!按任意键返回!\n"); getch(); return;//不执行任何操作,返回 } //s->pSBase[s->iSize++]=e; s->pSBase[s->iSize]=e; s->iSize++; } SData Pop(STACK *s) { if(s->iSize==0) { printf("栈为空,无法出栈!\n"); getch(); exit(ERROR_STACK_EMPTY);//退出代码:ERROR_STACK_EMPTY } s->iSize--; return (s->pSBase[s->iSize]); } void DestoryStack(STACK *s) { if(s->iSize!=0) free(s->pSBase); } int main() { int i=0; STACK s; InitStack(&s); //测试栈 for(i;i<11;i++) Push(&s,i); for(i=0;i<150;i++) printf("%d\n",Pop(&s)); DestoryStack(&s); getch(); return 0; } |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |