第三章:栈和队列
3.1:栈和队列的定义和特点
3.1.1:栈的定义和特点
3.1.2:队列的定义和特点
3.2:案例引入
3.3:栈的表示和操作的实现
3.3.1:栈的类型定义
3.3.2:顺序栈的表示与实现
3.3.2.1:顺序栈的初始化
//算法3.1:顺序栈的初始化
Status InitStack(Sqstack &S)
{
//构造一个空栈S
S.base=new SELemType[MAXSIZE]; //为顺序栈动态分配一个最大容量为MAXSIZE的数组空间
if(!S.base) exit(OVERFLOW); //存储分配失败
S.top=S.base; //top初始化为base,空栈
S.stacksize=MAXSIZE; //stacksize置为栈的最大容量 MAXSIZE
return OK;
}
3.3.2.2:顺序栈判断栈是否为空
//顺序栈判断栈是否为空
Status StackEmpty(SqStack S)
{
//若栈为空,返回TRUE,否则返回FALSE
if(S.top==S.base)
return TRUE;
else
return FALSE;
}
3.3.2.3:求顺序栈的长度
//求顺序栈的长度
int StackLength(SqStack S)
{
return S.top-S.base;
}
3.3.2.4:清空顺序栈
//清空顺序栈
Status ClearStack(SqStack S)
{
if(S.base) S.top=S.base;
return OK;
}
3.3.2.5:销毁顺序栈
//销毁顺序栈
Status DestroyStack(SqStack &S)
{
if(s.base)
{
delete S.base;
S.stacksize=0;
S.base=S.top=NULL;
}
return OK;
}