順序棧的實現

#include<stdio.h>數組

#include<stdlib.h>函數

#define MAXSIZE 10code

typedef int DataType;it

typedef struct Stack{ DataType stack[MAXSIZE];//定義數組io

int top;//棧頂只是去top

}StackSeq;di

void initStack(StackSeq *seq);//初始化co

int isEmpty(StackSeq seq);//非空return

int StackPush(StackSeq *seq,DataType x);//插入函數void

int stackPop(StackSeq *seq,DataType *x);//出棧

int stackGet(StackSeq seq,DataType *d);//取棧頂元素

int main(void){ int x,i; StackSeq seq; initStack(&seq); isEmpty(seq); for(i=0;i<10;i++) StackPush(&seq,i+1); //stackGet(seq,&x); for(i=0;i<10;i++){

stackPop(&seq,&x); printf("x=%d\n",x); } printf("%d\n",seq.top); isEmpty(seq); return 0; }

void initStack(StackSeq *seq) { seq->top=0; }

int StackPush(StackSeq *seq,DataType x){ if(seq->top==MAXSIZE){ printf("順序棧滿\n"); return 0; } seq->stack[seq->top]=x; seq->top++; printf("入棧成功\n"); return 1;

} int isEmpty(StackSeq seq){ if(seq.top<=0){ printf("空\n"); return 0; }

if(seq.top>0){
	printf ("非空\n");
	return 1;
}

}

int stackPop(StackSeq *seq,DataType *x){ if(seq->top<=0){ printf("棧空\n"); return 0; } seq->top--; *x=seq->stack[seq->top];

printf("出棧成功\n");
return 1;

}

int stackGet(StackSeq seq,DataType *d){ if(seq.top<=0){ printf("取棧頂元素空\n"); return 0; }

*d=seq.stack[seq.top-1];
printf("取棧頂元素成功\n");
return 1;

}

相關文章
相關標籤/搜索