#include<stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef int Elemtype;
typedef struct{
Elemtype data[MaxSize];
int top;
}SqStack;
void InitStack(SqStack &S);
bool StackEmpty(SqStack S);
bool Push(SqStack &S,Elemtype x);
bool Pop(SqStack &S,Elemtype &x);
bool GetTop(SqStack &S,Elemtype &x);
bool DestroyStack(SqStack &S);
void Display(SqStack &S);
int main(){
SqStack *S=(SqStack*)malloc(sizeof(SqStack));;
InitStack(*S);
StackEmpty(*S);
Display(*S);
Push(*S,1);
Push(*S,2);
Push(*S,3);
Display(*S);
int x;
Pop(*S,x);
Display(*S);
printf("--输出的是-----%d\n",x);
GetTop(*S,x);
printf("--输出的是-----%d\n",x);
Display(*S);
DestroyStack(*S);
Display(*S);
}
void InitStack(SqStack &S){
S.top=-1;
}
bool StackEmpty(SqStack S){
if(S.top==-1)
return true;
else
return false;
}
bool Push(SqStack &S,Elemtype x){
if(S.top==MaxSize-1)
return false;
S.data[++S.top]=x;
return true;
}
bool Pop(SqStack &S,Elemtype &x){
if(S.top==-1)
return false;
x=S.data[S.top--];
return true;
}
bool GetTop(SqStack &S,Elemtype &x){
if(S.top==-1)
return false;
x=S.data[S.top];
return true;
}
bool DestroyStack(SqStack &S){
free(S.data);
S.top=-1;
return true;
}
void Display(SqStack &S){
int t=S.top;
printf("----栈顶位置----\n");
while(t!=-1)
printf("%d\n",S.data[t--]);
printf("----栈底位置----\n");
}
顺序栈的实现(基于C语言)
最新推荐文章于 2023-07-26 15:33:51 发布