C语言栈代码
来源:互联网 发布:睡过很多女生体验知乎 编辑:程序博客网 时间:2024/05/16 13:53
#include<stdio.h>#include<malloc.h>#include<process.h>#define STACK_INIT_SIZE 10#define STACKINCREMENT 2typedef struct SqStack{int *base; int *top;int stacksize ;}SqStack;int InitStack(SqStack *S){(*S).base = (int *)malloc(STACK_INIT_SIZE*sizeof(int));if(!(*S).base)exit(0);(*S).top = (*S).base;(*S).stacksize = STACK_INIT_SIZE;return 1;}int Push(SqStack *S,int e){if((*S).top-(*S).base>=(*S).stacksize){(*S).base = (int *)realloc((*S).base,((*S).stacksize+STACKINCREMENT)*sizeof(int));if(!(*S).base)exit(0);(*S).top = (*S).base +(*S).stacksize;(*S).stacksize+=STACKINCREMENT;}*((*S).top) ++= e;return 1;}int DestroyStack(SqStack *S){free((*S).base);(*S).base = NULL;(*S).top = NULL;(*S).stacksize = 0;return 1;}int ClearStack(SqStack *S){(*S).top = (*S).base;return 1;}int StackEmpty(SqStack S){if(S.top == S.base)return 1;else return 0;}int StackLength(SqStack S){return S.top-S.base;}int GetTop(SqStack S,int *e){if(S.top>S.base){*e = *(S.top-1);return 1;}elsereturn 0;}int Pop(SqStack *S,int *e){if((*S).top == (*S).base)return 0;*e = *--(*S).top;return 1;}int StackTraverse(SqStack S,int(*visit)(int)){while(S.top>S.base)visit(*S.base++);printf("\n");return 1;}int visit(int c){printf("%d ",c);return 1;}void main(){int j;SqStack s;int e;if(InitStack(&s)==1)for(j=1;j<12;j++)Push(&s,j);printf("the stack number order in ");StackTraverse(s,visit);//printf("%d ",(s.top));Pop(&s,&e);printf("stack empty? : %d(1:yes. 0 :no),%d\n",StackEmpty(s),e);GetTop(s,&e);printf("the pop number e = %d: the length:%d \n",e,StackLength(s));ClearStack(&s);printf("after clear ,empty?:%d\n",StackEmpty(s));DestroyStack(&s);printf("after destroy :s.top = %d ,s.base = %d,s.stacksize=%d\n",s.top,s.base,s.stacksize);}
0 0
- C语言栈代码
- C语言声讯代码
- 一些C语言代码
- C语言代码规范
- C语言代码编写
- 一些C语言代码
- 优化C语言代码
- 计算器c语言代码
- 万年历C语言代码
- C语言代码规范
- C语言五星代码
- C语言代码大全
- C语言病毒代码
- 通讯录C语言代码
- 万年历C语言代码
- C语言病毒代码
- C语言代码优化
- c语言高级代码
- CSS Positioning(定位)
- 翻转链表 II
- 内存之虚拟存储器
- Pandas 文本数据方法 replace( )
- Ionic 环境搭建
- C语言栈代码
- 【滤波器学习笔记】一阶RC低通滤波
- 文件共享:samba,iscsi,NFS
- 解决
- Class类中getConstructor和getConstructor(Class<?>... parameterTypes)区别
- 3.22
- ip route
- 递推递归练习 I
- 2017湖南多校第一场-B(1002): Bones’s Battery