// 顺序栈
#include <stdio.h>
#define MaxSize 50 //顺序栈的最大长度
typedef struct {
int data[MaxSize]; // 存放元素
int top; // 栈顶指针
}SqStack;
// 初始化栈
void InitStack(SqStack* S)
{
S->top = -1; //初始化栈顶指针
}
// 判断栈空
void StackEmpty(SqStack *S)
{
if(S->top == -1)
{
printf("栈是空栈!");
}
else{
printf("栈不为空");
}
}
// 入栈
void Push(SqStack* S,int x)
{
if(S->top == MaxSize -1)
{
printf("栈已满!");
return;
}
S->top++;
S->data[S->top] = x;
}
// 出栈
void Pop(SqStack * S)
{
if(S->top == -1)
{
printf("栈是空栈!");
return;
}
int data = S->data[S->top];
printf("出栈元素为:%d\n",data);
S->top--;
}
// 取栈顶元素
void GetTop(SqStack* S)
{
if(S->top == -1) {
printf("栈是空栈!");
return;
}
int data = S->data[S->top];
printf("栈顶元素为:%d\n",data);
}
int main()
{
SqStack S;
InitStack(&S);
Push(&S,1);
Push(&S,2);
Push(&S,3);
Push(&S,4);
Push(&S,5);
GetTop(&S);
Pop(&S);
Pop(&S);
Pop(&S);
Pop(&S);
Pop(&S);
return 0;
}
C语言顺序栈
最新推荐文章于 2025-04-28 23:19:23 发布