考研数据结构第三章栈的顺序存储定义操作及代码实现

202 阅读1分钟

考研数据结构第三章栈的顺序存储定义操作及代码实现

1.初始化操作

//1.初始化操作 
void InitStack(SqStack &stack){
	stack.top = -1;
	 
}

2.判栈空操作

#define TRUE 1
#define FALSE 0
//2.判栈空操作
int StackEmpty(SqStack stack){
	if(stack.top == -1)
		return TRUE;   //栈空 
	else
		return FALSE;  //不空 
} 

3.进栈操作

//3.进栈操作
int Push(SqStack &stack,ElemType x){
	if(stack.top==MaxSize-1)
		return FALSE;
	stack.data[++stack.top]=x;
	return TRUE; 
} 

4.出栈代码

//4.出栈代码
int pop(SqStack &stack,ElemType &x){
	if(stack.top==-1)
		return FALSE;
	x = stack.data[stack.top--];
	return TRUE;
}

5.读栈顶元素

//5.读栈顶元素
int GetTop(SqStack stack,ElemType &x){
	if(stack.top==-1)
		return FALSE;
	x = stack.data[stack.top];
	return TRUE; 
} 

完整代码

#include<iostream>
using namespace std;

typedef int ElemType;
#define MaxSize 50

typedef struct SqStack{
	ElemType data[MaxSize];
	int top; 
}SqStack;
//1.初始化操作 
void InitStack(SqStack &stack){
	stack.top = -1;
	 
}

#define TRUE 1
#define FALSE 0
//2.判栈空操作
int StackEmpty(SqStack stack){
	if(stack.top == -1)
		return TRUE;   //栈空 
	else
		return FALSE;  //不空 
} 

//3.进栈操作
int Push(SqStack &stack,ElemType x){
	if(stack.top==MaxSize-1)
		return FALSE;
	stack.data[++stack.top]=x;
	return TRUE; 
} 

//4.出栈代码
int pop(SqStack &stack,ElemType &x){
	if(stack.top==-1)
		return FALSE;
	x = stack.data[stack.top--];
	return TRUE;
}

//5.读栈顶元素
int GetTop(SqStack stack,ElemType &x){
	if(stack.top==-1)
		return FALSE;
	x = stack.data[stack.top];
	return TRUE; 
} 
 
int main(){
	return 0;
}