设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的

1.mian.cpp文件内容:

#include 
#include 

#include "GlobalDefine.h"
#include "LinkList.h"
#include "Stack.h"

using namespace std;

int main()
{
	//Page85.2.(3)
	int input_num, pop_num;
	SqStack s;

	cout<<"\n输入整数序列:";
	Init_Stack(s);
	do
	{
		cin>>input_num;
		if(input_num == -1)
		{
			if(Pop_Stack(s, pop_num))
			{
				cout<

2.Stack.cpp文件中相关内容:

typedef int Status;
const int TRUE = 1;
const int FALSE = 0;
const int STACK_MAXSIZE = 5;

Status Push_Stack(SqStack &s, StackElementType &e)
{
	if(s.top - s.base == s.stacksize)
	{
		cout<<"\nerror:栈满";
		return FALSE;
	}
	else
	{
		*s.top = e;
		s.top ++;		
	}
	return TRUE;
}

Status Pop_Stack(SqStack &s, StackElementType &e)
{
	if(s.top == s.base)
	{
		cout<<"\n栈空,无法执行出栈操作";
		return FALSE;
	}
	else
	{
		s.top--;
		e = *s.top;
	}
	return TRUE;
}

3.测试结果:

设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的_第1张图片

 

你可能感兴趣的:(数据结构基础)