数据结构(栈stack)

文章目录

  • 一、栈
    • 1、栈的定义
    • 2、顺序栈
      • 2.1、初始化
      • 2.2、进栈
      • 2.3、出栈
      • 2.4、读取
    • 3、链栈

一、栈

1、栈的定义

逻辑结构:与普通线性表相同数据的运算:插入、删除操作有区别
数据结构(栈stack)_第1张图片
数据结构(栈stack)_第2张图片
数据结构(栈stack)_第3张图片

2、顺序栈

数据结构(栈stack)_第4张图片

2.1、初始化

数据结构(栈stack)_第5张图片
”.”适用于结构体变量,”->”适用于结构体指针变量

typedef struct{
	int data[MaxSize];
	int top;
}SqStack;

void InitStack(SqStack &S){
	S.top=-1;
}

2.2、进栈

数据结构(栈stack)_第6张图片

bool Push(SqStack &S,int x){
	if(S.top==MaxSize-1)
		return false;
	S.top=S.top+1;
	S.data[S.top]=x;
	return true;
} 

2.3、出栈

数据结构(栈stack)_第7张图片

bool Pop(SqStack &S,int &x){
	if(S.top==-1)
		return false;
	x=S.data[S.top];
	S.top=S.top-1;
	return true;
} 

2.4、读取

bool GetTop(SqStack S,int &x){
	if(S.top==-1)
		return false;
	x=S.data[S.top];
	return true;
} 

数据结构(栈stack)_第8张图片

3、链栈

数据结构(栈stack)_第9张图片

你可能感兴趣的:(蓝桥杯,数据结构)