栈的顺序存储实现

来源:互联网 发布:上海移动数据流量套餐 编辑:程序博客网 时间:2024/04/19 12:48
#define StackSize 100
typedef struct
{
DataType stack[StackSize];
int top;
}SeqStack;


void InitStack(SeqStack *S)
{
S->top = 0;
}


int StackEmpty(SeqStack S)
{
if(S.top == 0)
return 1;
else
return 0;
}


int GetTop(SeqStack S, DataType *e)
{
if(S.top<=0)
{
printf("栈已经空\n");
}
else
{
*e = S.stack[S.top - 1];
return 1;
}
}


int PushStack(SeqStack *S, DataType e)
{
if(S->top >= StackSize)
{
printf("栈已满,不能进栈\n");
return 0;
}
else
{
S->stack[S->top] = e;
S->top++;
return 1; 
}
}


int PopStack(SeqStack *S, DataType *e)
{
if(S->top ==0)
{
printf("栈已经没有元素,不能出栈\n");
return 0;
}
else
{
S->top--;
*e = S->stack[S->top];
return 1;
}
}


int StackLength(SeqStack S)
{
return S.top;
}


void ClearStack(SeqStack *S)
{
S->top = 0; 
}
0 0
原创粉丝点击