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