使用类来简单地实现栈的基本功能

这篇博客介绍了如何使用C++ Primer Plus第十章的内容,通过编写Stack类来实现栈的基本功能,包括入栈和出栈操作。博客详细阐述了栈的后进先出特性,并提供了Stack类的数据成员和函数成员声明及实现。在主程序中,Stack类被用来存储和删除customer结构,每次删除时将payment值累加到总金额中。
摘要由CSDN通过智能技术生成

C++ Primer PLus 第十章 对象和类

编程练习第五题

5.考虑下面的结构声明:
struct customer {
char fullname[35];
double payment;
};
编写一个程序,它从栈中添加和删除customer结构(栈用Stack类声明表示)。每次customer结构被删除时,其payment的值被加入到总数中,并报告总数。注意:应该可以直接使用Stack类而不作修改;只修改typedef声明,使Item的类型为customer,而不是unsigned long即可。

栈是一种后进先出的抽象数据类型

这里用整型int栈顶“指针”指向栈的下一个空位置,如数组存储了一个数据在arr[0],然后“指针”+1指向第二个位置arr【1】,以此类推,直到超出了数组范围,表示栈已满。

int top=0; //栈顶“指针”,显示当前栈为空
top++; //指向下一个数组位置

Stack类的数据成员和函数成员声明文件

#ifndef STACK_H_                 //防止头文件被重复引用并编译
#define STACK_H_

struct customer {
                      /*结构customer声明*/
	char fullname[35]="";           /*数组初始化设值,变量payment初始化设值*/
	double payment=0.0;
};

typedef customer Item;              //设置customer别名Item
 class Stack                        //Stack类声明
 {
   
	private:
		enum{
   MAX=10};               //通过枚举的方法可以设置在该类中使用的常量MAX=10
		Item stack[MAX];            //栈,容量为10,存储的类型为结构customer 
		int top;                    //栈顶“指针”,指示栈顶

	public:                     
		Stack();                    //Stack类默认构造函数
		~Stack() {
   };                  //析构函数
		bool isempty()const;          //判断栈是否为空,也就是top是否为0
		bool isfull()const;           //判断栈是否已满,也就是top是否为10
		bool push(const Item&item);    //入栈,压入数据,压入后,栈顶“指针”+1
		bool 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值