数据结构-06-栈的顺序存储

数据结构-06-栈的顺序存储

顺序栈的定义

typedef int ElemType;
#define MaxSize 10 //定义栈中元素最大个数 

typedef struct{
	ElemType data[MaxSize]; //静态数组存放栈中元素 
	int top; //栈顶指针 
}SeqStack;

初始化栈顶元素

数据结构-06-栈的顺序存储

//初始化栈顶元素
void InitStack(SeqStack &S)
{
	S.top = -1;	
} 

//判断栈空
bool StackEmpty(SeqStack S)
{
	return S.top == -1;
}

进栈操作

数据结构-06-栈的顺序存储图中是b这个数据入栈

//进栈操作
bool Push(SeqStack &S, ElemType x)
{
	if(S.top == MaxSize - 1)
	{
		return false; //满栈。报错	
	}
	S.data[++S.top] = x;
	return false; 
} 

出栈操作


//出栈操作
bool Pop(SeqStack &S, ElemType &x)
{
	if(S.top == -1)
	{
		return false; // 栈空 
	}
	x = S.data[S.top--];
	return true; 
} 

读取栈顶元素

//读栈顶元素操作
bool GetTop(SeqStack S, ElemType &x)
{
	if(S.top == -1)
	{
		return false;
	}
	x = S.data[S.top];
	return true;
}
上一篇:学习线性表


下一篇:C/C++实现共享栈