📄 stack.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include "../header/bitree.h"
#include "../header/queue.h"
#include "../header/stack.h"
#include "../header/expr.h"
Status InitStack( SqStack &S )
{
S.base = ( SElemType * ) malloc ( 100 * sizeof( SElemType ) );
if( !S.base )
return FALSE;
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}
Status StackEmpty( SqStack S )
{
return S.base == S.top;
}
/*
Status Top( SqStack S, SElemType &e )
{
if( S.top == S.base )
return ERROR;
e = * ( S.top - 1 );
return OK;
}*/
Status Push( SqStack &S, SElemType e )
{
if( S.top - S.base >= S.stacksize )
{
S.base = ( SElemType * )realloc( S.base,
( S.stacksize + 10 ) * sizeof( SElemType ) );
if( !S.base )
return FALSE;
S.top = S.base + S.stacksize;
S.stacksize += STACKINCREMENT;
}
*S.top++ = e;
return OK;
}
Status Pop( SqStack &S, SElemType &e )
{
if( S.top == S.base )
return ERROR;
e = * --S.top;
return OK;
}
SElemType Top( SqStack S )
{SElemType e;
if( S.top == S.base )
return ERROR;
e = * ( S.top - 1 );
return e;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -