|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 圣狄雅哥 于 2018-1-29 10:41 编辑
DestroyStack(sqStack *s){
int i, len;
len = s->stackSize;
for( i=0; i < len; i++ ){
free( s->base );
s->base++;
}
s->base = s->top = NULL;
s->stackSize = 0;
}
DestroyStack(sqStack *s)好像真的有问题
@小甲鱼
- typedef int ElemType;
- typedef struct
- {
- ElemType *base;
- ElemType *top;
- int stackSize;
- }sqStack;
- #define STACK_INIT_SIZE 100
-
- initStack(sqStack *s)
- {
- s->base = (ElemType *)malloc( STACK_INIT_SIZE * sizeof(ElemType) );
- if( !s->base )
- exit(0);
-
- s->top = s->base; // 最开始,栈顶就是栈底
- s->stackSize = STACK_INIT_SIZE;
- }
- #define SATCKINCREMENT 10
- Push(sqStack *s, ElemType e)
- {
- // 如果栈满,追加空间
- if( s->top – s->base >= s->stackSize )
- {
- s->base = (ElemType *)realloc(s->base, (s->stackSize + STACKINCREMENT) * sizeof(ElemType));
- if( !s->base )
- exit(0);
- s->top = s->base + s->stackSize; // 设置栈顶
- s->stackSize = s->stackSize + STACKINCREMENT; // 设置栈的最大容量
- }
- *(s->top) = e;
- s->top++;
- }
- Pop(sqStack *s, ElemType *e)
- {
- if( s->top == s->base ) // 栈已空空是也
- return;
-
- *e = *--(s->top);
- }
- ClearStack(sqStack *s)
- {
- s->top = s->base;
- }
- DestroyStack(sqStack *s)
- {
- int i, len;
-
- len = s->stackSize;
-
- for( i=0; i < len; i++ )
- {
- free( s->base );
- s->base++;
- }
-
- s->base = s->top = NULL;
- s->stackSize = 0;
- }
- int StackLen(sqStack s)
- {
- return(s.top – s.base); // 初学者需要重点讲解
- }
复制代码
|
|