#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#define MAXSIZE 100
using namespace std;
//顺序栈的运算
//顺序栈的类型
struct seqstack{
int top ;
int data[MAXSIZE] ;
};
//置空栈
void setnull(struct seqstack *s){
s->top = -1 ;
}
//判栈空
int isempty(struct seqstack*s){
if(s->top == -1)
return 1 ;
return 0 ;
}
//进栈
int push(struct seqstack *s , int x){
if(s->top == MAXSIZE -1)
return 0 ; //栈上溢,进栈不成功,返回0标志
s->top++ ;
s->data[s->top] = x ;
return 1 ; //进栈成功返回1
}
//出栈
int pop(struct seqstack *s ){
if(s->top == -1)
return NULL ; //栈下溢无元素返回NULL
return s->data[s->top--] ;
}
//读栈顶元素
int gettop(struct seqstack *s){
if(s->top == -1)
return NULL;
return s->data[s->top] ;
}
int main(){
struct seqstack *s ;
s = (struct seqstack *)malloc(sizeof(struct seqstack)) ;
setnull(s) ;
for(int i =1 ;i <10 ; i++)
push(s , i) ;
while(!isempty(s)){
cout<<"出栈顺序: "<<pop(s)<<endl ;
}
return 0 ;
}
顺序栈运算置空/判空/出栈/入栈/读栈顶元素
最新推荐文章于 2022-10-30 16:23:47 发布