数据结构与算法编程题17

堆栈相关操作

#include 
using namespace std;

#define Maxsize 100
typedef	int Elemtype;
#define ERROR 0
#define OK 1
typedef struct SqStack
{
	Elemtype data[Maxsize];
	int top;
}SqStack;

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

bool Push(SqStack& S,Elemtype x)
{
	if (S.top == Maxsize - 1)
	{
		cout << "堆栈已经满,无法继续推入数据!!!" << endl;
		return ERROR;
	}
	S.data[++S.top] = x;
	return OK;
}

bool Pop(SqStack& S, Elemtype& x)
{
	if (S.top == -1)
	{
		cout << "堆栈为空,无法继续推出数据!!!" << endl;
		return ERROR;
	}
	x = S.data[S.top--];
	cout << "推出元素为: " << x << endl;
	return OK;
}

bool Stack_Empty(SqStack S)
{
	if (S.top == -1)
	{
		cout << "堆栈为空!!!" << endl;
		return ERROR;
	}
	return OK;
}

bool Get_Stack_Top(SqStack S)
{
	if (S.top == -1)
	{
		cout << "堆栈为空!!!" << endl;
		return ERROR;
	}
	cout << "栈顶元素为: " << S.data[S.top] << endl;
	return OK;
}
int main(void)
{
	SqStack S;
	Init_Stack(S);
	//------压栈-------//
	Push(S, 1);
	Push(S, 2);
	Push(S, 3);
	Push(S, 4);
	//------压栈-------//
	//------栈顶元素-------//
	Get_Stack_Top(S);
	//------栈顶元素-------//
	//------出栈-------//
	int x1 = 0;
	Pop(S, x1);
	int x2 = 0;
	Pop(S, x2);
	int x3 = 0;
	Pop(S, x3);
	int x4 = 0;
	Pop(S, x4);
	//------出栈-------//
	return 0;
}

数据结构与算法编程题17_第1张图片

你可能感兴趣的:(算法与数据结构,数据结构)