堆栈——顺序栈(C++实现)

本文介绍了堆栈的基本概念,特别是其后进先出(LIFO)特性,并详细说明了如何使用C++通过顺序表实现堆栈。内容包括堆栈的构造方法、析构函数、入栈、出栈操作以及判断栈是否为空或已满的方法。此外,还提供了测试程序以验证实现的正确性。
摘要由CSDN通过智能技术生成
堆栈定义

堆栈本质是一个线性表,其插入和删除操作都在表的同一端进行,其中表的两端分别被称为栈顶和栈低。堆栈的结构如下:
在这里插入图片描述

刚开始的时候,top指向栈底,然后每进入一个元素,top指针就上移一位,每删除一个元素,top就下移一位。这个过程称为出栈入栈。图解如下(来自于《数据结构算法与应用-C++语言描述》):
在这里插入图片描述
如上图,如果入栈一个元素E,那么结果如图b所示,如果图b出栈三个元素,那么结果如图c所示。由此可知,堆栈的一个特点就是后进先出(LIFO)。

用顺序表实现堆栈

首先有一个顺序存储的线性表,在此基础上,实现对表的一端进行操作的方法,使其满足堆栈后进先出(LIFO)的规则即可。
顺序表实现的堆栈的类代码如下:

//顺序表实现堆栈的参考代码
template<class T>
class Stack{
   
	public:
		Stack(int StackMaxSize);//构造方法
		~Stack();//析构函数
		void Push(const T& x);//入栈
		T Pop();//出栈
		bool IsEmpty();//判断栈是否为空
		bool IsFull();//判断栈是否已满
	private:
		int MaxTop;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值