#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
#define ElemType int
#define MAXSIZE 100
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef struct Stack{
ElemType data[MAXSIZE];
int top;
}Stack,*SqStack;
//初始化
void InitStack(SqStack &s){
s=new Stack;
s->top==-1;
}
//销毁
void DestroyStack(SqStack &s){
delete s;
}
//判断是否为空
bool StackEmpty(SqStack &s){
return (s->top==-1);
}
//进栈
bool Push(SqStack &s){
if(s->top==MAXSIZE-1){
return false;
}
cout<<"请输入你要进栈的元素:";
ElemType elem;
cin>>elem;
s->top++;
s->data[s->top]=elem;
return true;
}
//出栈
ElemType Pop(SqStack &s){
if(s->top==-1)
cout<<"此栈为空没有栈顶元素.";
ElemType elem=s->data[s->top];
s->top--;
return elem;
}
//获取栈顶元素
ElemType GetElem(SqStack s){
if(s->top==-1){
cout<<"此栈为空没有栈顶元素.";
}
ElemType elem;
elem=s->data[s->top];
return elem;
}
int main(){
SqStack s;
InitStack(s);
cout<<"请输入你要进栈个数:";
int number;
cin>>number;
int i;
for(i=0;i<number;i++){
Push(s);
}
cout<<endl;
StackEmpty(s);
if(StackEmpty){
cout<<"此栈非空";
}else{
cout<< "此栈为空";
}
cout<<endl;
ElemType elem =GetElem(s);
cout<<"栈顶元素为:"<<elem<<endl;
cout<<endl;
elem =Pop(s);
cout<<"栈顶元素"<<elem<<"被出栈。";
cout<<endl;
elem =GetElem(s);
cout<<"栈顶元素为:"<<elem<<endl;
cout<<endl;
}
(数据结构)(C++)顺序栈的建立和部分基本操作
于 2023-07-06 14:15:09 首次发布