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

该博客介绍了一个算法,通过栈结构处理整数序列。当遇到非-1的整数ai时,将其压入栈中;如果遇到-1,则弹出栈顶元素并输出。文章包含mian.cpp和Stack.cpp的实现细节,并提供了测试结果。
摘要由CSDN通过智能技术生成

1.mian.cpp文件内容:

#include <iostream>
#include <stdlib.h>

#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<<pop_num;
			}
		}
		else
		{
			Push_Stack(s, input_num);
		}
	}while(s.top - s.base <= s.stacksize);



	system("PAUSE");
}

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 TRU
  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值