顺序栈的基本操作

#include<stdio.h>
#define MaxSize 10
typedef char ElemType;
typedef struct
{
	ElemType data[MaxSize];
	int top;
}SqStack;
void InitStack(SqStack &s)			//初始化栈
{
	s.top=-1;
}
bool Push(SqStack &s,ElemType e)		//进栈
{
	if(s.top==MaxSize-1)		//判满
		return false;
	s.data[++s.top]=e;			//指针加1,再进栈
	return true;
}
bool Pop(SqStack &s,ElemType &e)		//出栈
{
	if(s.top==-1)
		return false;
	e=s.data[s.top--];					//先出栈,指针再减1
	return true;
}
bool GetTop(SqStack s,ElemType &e)		//读取栈顶元素
{
	if(s.top==-1)
		return false;
	e=s.data[s.top];
	return e;
}
void main()
{
	SqStack s;
	InitStack(s);
	ElemType e;
	Push(s,'a');
	Push(s,'b');
	Push(s,'c');
	GetTop(s,e);
	printf("Top1=%c\n",e);
	Pop(s,e);
	GetTop(s,e);
	printf("Top2=%c\n",e);
}

  

posted @ 2020-06-26 17:55  石乐智先生  阅读(410)  评论(0编辑  收藏  举报