關於順序棧的初始化,進棧,出棧,棧滿,棧空的操作
來源:互聯網
上載者:User
本程式在VC環境下運行。順序棧比較簡單。本程式只是插入一個資料之後直接刪除該資料。不夠完善請原諒。
seqstack.h檔案。
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 50
#define False 0;
#define True 1;
typedef struct{
int data[MAXSIZE];
int top;
}seqstack;
seqstack.cpp檔案。
#include "seqstack.h"
//順序棧的初始化
int Initseqstack(seqstack *s){
s->top=-1;
return True;
}
//判斷棧滿
int isFull(seqstack s){
if(s.top==MAXSIZE-1){
return True;
}else{
return False;
}
}
//判斷棧空
int isEmpty(seqstack s){
if(s.top==-1){
return True;
}else{
return False;
}
}
//進棧
int push(seqstack *s,int data){
if(isFull(*s)){//棧滿無法插入
return False;
}else{
s->data[++(s->top)]=data;
return True;
}
}
//出棧
int pop(seqstack *s,int *data){
if(isEmpty(*s)){
return False;
}else{
(*data)=s->data[(s->top)--];
return True;
}
}
void main(){
seqstack s;
int data;
Initseqstack(&s);
printf("請輸入要插入的資料:");
scanf("%d",&data);
if(push(&s,data)){
printf("成功插入資料。");
}else{
printf("順序棧已滿。");
}
printf("\n");
if(pop(&s,&data)){
printf("刪除的資料是:%d",data);
}else{
printf("順序棧為空白。");
}
printf("\n");
}
運行結果如下:
請輸入要插入的資料:23
成功插入資料。
刪除的資料是:23
Press any key to continue