二、栈
文章目录
- 二、栈
- :heart:顺序栈进栈操作:heart:
- :heart:顺序栈出栈操作:heart:
- :heart:顺序栈获取栈顶元素:heart:
❤️顺序栈进栈操作❤️
*******************************************************************************/
#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;
}