❤️顺序栈进栈操作❤️
*******************************************************************************/ #include <stdio.h> #define MAXSIZE 10//定义栈中元素的最大个数 typedef struct{ ElemType data[MAXSIZE]; int top;//栈顶指针 }SqStack; //初始化顺序栈 bool Init_SeqStack(&S){ if(s==NULL) return FALSE; s->top=NULL;//顺序栈置空操作 return TRUE; } //顺序栈入栈操作 bool Push_SeqStack(SqStack &s,ElemType x){ if(s->top==MAXSIZE-1)//如果满栈 return FALSE; s.data[++top]=x;//先移动指针,后放入值 return TRUE; } int main() { //定义顺序栈 SqStack s; //初始化顺序栈 Init_SeqStack(s); //入栈操作 Push_SeqStack(s,x); return 0; }
❤️顺序栈出栈操作❤️
*******************************************************************************/ #include <stdio.h> #define MAXSIZE 10//定义栈中元素的最大个数 typedef struct{ ElemType data[MAXSIZE]; int top;//栈顶指针 }SqStack; //初始化顺序栈 bool Init_SeqStack(&S){ if(s==NULL) return FALSE; s->top=NULL;//顺序栈置空操作 return TRUE; } //顺序栈出栈操作 bool Pop_SeqStack(SqStack &s,ElemType &x){ if(s->top==-1)//如果栈空 return FALSE; x=s.data[top--]; return TRUE; } int main() { //定义顺序栈 SqStack s; //初始化顺序栈 Init_SeqStack(s); //入栈操作 Push_SeqStack(s,x); //出栈操作 Pop_SeqStack(s,x); return 0; }
❤️顺序栈获取栈顶元素❤️
*******************************************************************************/ #include <stdio.h> #define MAXSIZE 10//定义栈中元素的最大个数 typedef struct{ ElemType data[MAXSIZE]; int top;//栈顶指针 }SqStack; //初始化顺序栈 bool Init_SeqStack(&S){ if(s==NULL) return FALSE; s->top=NULL;//顺序栈置空操作 return TRUE; } //顺序栈入栈操作 bool Push_SeqStack(SqStack &s,ElemType x){ if(s->top==MAXSIZE-1)//如果满栈 return FALSE; s.data[++top]=x;//先移动指针,后放入值 return TRUE; } //顺序栈出栈操作 bool Pop_SeqStack(SqStack &s,ElemType &x){ if(s->top==-1)//如果栈空 return FALSE; x=s.data[top--]; return TRUE; } //获取栈顶元素(和出栈差不多,只是少了一步指针的移动 ) bool GetTop(SqStack &s,ElemType &x){ if(s->top==-1)//如果栈空 return FALSE; x=s.data[top]; return TRUE; } int main() { //定义顺序栈 SqStack s; //初始化顺序栈 Init_SeqStack(s); //入栈操作 Push_SeqStack(s,x); //出栈操作 Pop_SeqStack(s,x); //获取栈顶元素 GetTop(s,x); return 0; }