1.顺序栈的存储结构定义
#define StackSize 100 //假设栈元素最多100个
typedef int DataType;//定义栈元素的数据类型,假设为int型
typedef struct {
DataType data[StackSize];
int top;
}SeqStack;
2.顺序栈的初始化
void InitStack(SeqStack * s){
s->top=-1;
}
3.入栈操作
int Push(SeqStack *s,DataType x){
if(s->topStackSize-1){
printf(“上溢错误,插入失败\n”);
return 0;
}
s->data[++s->top]=x;
return 1;
}
4.出栈操作
int Pop(SeqStack *s,DataType *ptr){
if(s->top-1){
printf(“下溢错误,删除失败\n”);
return 0;
}
*ptr=s->data[s->top–];
return 1;
}
5.取栈顶元素
int GetTop(SeqStack *s,DataType *ptr){
if(s->top==-1){
printf(“下溢错误,取栈顶失败\n”);
return 0;
}
*ptr=s->data[s->top];
return 1;
}
6.判空操作
int Empty(SeqStack *s){
if(s->top==-1) return -1;
else return 0;
}
顺序栈的存储结构及实现
最新推荐文章于 2022-10-03 21:18:34 发布