数据结构中的顺序栈的进栈和出栈问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:32:40
先对顺序栈类型进行定义

#define StackSize 100
typedef char DataType;
typedef struct
{ DataType data[StackSize];
int top;
}SeqStack;

下面是算法
void InitStack(SeqStack *S)
{
S->top=-1;
}

int StackEmpty(SeqStack *S)
{
return S->top==-1;
}
int StackFull(SeqStack *S)
{
return S->top==StackSize-1;
}
void Push(SeqStack *S,DataType x)
{ if (StackFull(S))
{ printf("Stack overflow");
exit(0); }
S->data[++S->top]=x; }

DataType Pop(SeqStack *S)
{ if (StackEmpty(S))
{ printf("Stack underflow");
exit(0);
}
return S->data[S->top--];
}

现在要编一个main函数来调用相关的函数来实现顺序栈的进栈和退栈操作,并且将元素打印输出(用循环语句)

大家帮我看看,这个main函数怎么写,想了老半天都没写出来,谢谢
能写下具体的循环语句吗

#include <stdio.h>

#define StackSize 100
typedef char DataType;
typedef struct
{ DataType data[StackSize];
int top;
}SeqStack;

//下面是算法
void InitStack(SeqStack *S)
{
S->top=-1;
}

int StackEmpty(SeqStack *S)
{
return S->top==-1;
}
int StackFull(SeqStack *S)
{
return S->top==StackSize-1;
}
void Push(SeqStack *S,DataType x)
{ if (StackFull(S))
{ printf("Stack overflow");
exit(0); }
S->data[++S->top]=x; }

DataType Pop(SeqStack *S)
{ if (StackEmpty(S))
{ printf("Stack underflow");
exit(0);
}
return S->data[S->top--];
}

int main(void)
{
SeqStack ss;
int i;
InitStack(&ss);
for(i=0;i<26 ;i++ )
{
Push(&ss,'A'+i);
}
while(i--)
printf("%c\t",Pop(