初始化一个栈,只需要将栈顶指针置为-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;
}
这是我的复习笔记,希望对大家也有帮助