初始化一个栈,只需要将栈顶指针置为-1

这里我们讨论顺序栈

#include<stdio.h>
#define maxsize 100
typedef struct
{
	int data[maxsize];
	int top;
}sqstack;
void initStack(sqstack &st)
{
	st.top=-1;
}

判断栈空返回1,否则返回0

int isEmpty(sqstack st)
{
	if(st.top==-1)
		return 1;
	else
		return 0;
	
}

进栈的时候注意:栈满就不能进栈

int push(sqstack &st,int x)
{
	if(st.top==maxsize-1)
		return 0;
	++(st.top);//先移动指针,在进栈
	st.data[st.top]=x;
	return 1;
}

出栈的时候注意:栈空就不能出栈

int pop(sqstack &st,int &x)
{
	if(st.top==-1)
		return 0;
	x=st.data[st.top];//先取出元素,在移动指针
	--(st.top);
	return 1;
}

初始化一个顺序栈整体是这样:

#include<stdio.h>
#define maxsize 100
typedef struct
{
	int data[maxsize];
	int top;
}sqstack;
void initStack(sqstack &st)
{
	st.top=-1;
}
int isEmpty(sqstack st)
{
	if(st.top==-1)
		return 1;
	else
		return 0;
	
}
int push(sqstack &st,int x)
{
	if(st.top==maxsize-1)
		return 0;
	++(st.top);//先移动指针,在进栈
	st.data[st.top]=x;
	return 1;
}
int pop(sqstack &st,int &x)
{
	if(st.top==-1)
		return 0;
	x=st.data[st.top];//先取出元素,在移动指针
	--(st.top);
	return 1;
}

这是我的复习笔记,希望对大家也有帮助