【数据结构】顺序栈 Stack

本文介绍了顺序栈的各种基本运算算法的实现,包括实验说明、相关代码、过程记录和结果分析,提供实验代码下载链接。
摘要由CSDN通过智能技术生成

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205


顺序栈各种基本运算算法的实现


栈是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底(push),最后的数据在栈顶(top),需要读数据的时候从栈顶开始弹出数据(top)最后一个数据被第一个读出来。

栈中数据用数组储存,通过top(),push(),pop()基本的函数用以实现其功能,此外我还增加了clear()函数用以清除栈中现有的所有元素  

【实验说明】

我选择的题目:书中calculator的编写与改进
1.分析栈要实现的功能从而确定栈类的几种基本成员函数——pop(),pop(),top(),clear(),确定栈中以数组实现数据的存储从而确定栈的成员函数——Stack_entry entry[],count(记录栈中数据数量)
2.编写栈的头文件及实现
3.选择书中计算器的程序以验证栈的各种基本运算。分析书中算法思路及对栈的运用,提出可以改进的地方——将计算器功能封装到类中,并增加清空栈的功能。
4.编写计算器类的头文件及类的实现
5.主函数中通过简单的创建MyClaculator验证程序,并试验各种基本功能。

【相关代码】

Stack.h
#ifndef STACK_H
#define STACK_H

enum Error_code{success,underflow,overflow};
const int stackmax=10;
typedef double Stack_entry;

class Stack{
public:
	Stack();
	bool empty() const;
	Error_code pop();
	Error_code push(const Stack_entry &item);
	Error_code top(Stack_entry &item) ;
	Error_code clear();
private:
	Stack_entry entry[stackmax];
	int count;
};
#endif
Stack.cpp
#include"stack.h"
//impleme
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值