c++之数据结构——栈(stack)

本文介绍了栈这种数据结构的基础理论,包括栈的定义、基本操作,如入栈、出栈,以及栈的后进先出特性。还详细探讨了栈的两种实现方式——顺序栈和链栈,并提供了C++的实现示例。
摘要由CSDN通过智能技术生成


(发表日期:2020/7/4)

栈的定义

栈是一种最基础的数据结构,是只允许在一端进行插入和删除的一种特殊的线性表。

栈的基本理论

  • 栈中允许插入和删除的一端叫栈顶(top),另一端则是栈底(bottom)
  • 栈的插入称为入栈(push),删除称为出栈(pop)
  • 栈的特性是:后进先出,所以栈也叫后进先出表,简称LIFO表(Last In First Out)。

栈的图解

  • 每次入栈时,将元素放入栈,栈顶上移对应当前元素
  • 每次出栈时,将栈顶元素移出栈,栈顶下移

当前栈:
在这里插入图片描述


入栈:
栈顶上移
在这里插入图片描述


出栈:
栈顶下移
在这里插入图片描述

栈的基本操作

  • 初始化栈(stack):将栈初始化,长度为0,栈顶为空
  • 出栈(pop):将栈顶元素弹出
  • 入栈(push):将目标元素放入栈,成为新的栈顶
  • 判空(isEmpty):判断栈是否为空
  • 判满(isFull)<仅对顺序栈>:判断栈是否已满
  • 取栈顶元素(getTop):返回栈顶元素
  • 获得栈中元素个数(getLength):返回元素个数
  • 栈的析构(~stack)<仅对链栈>:释放栈中所有元素的内存空间

栈的两种形式及其c++实现(以整型为例)

-顺序栈

顺序表(数组)作为栈的储存结构:
在这里插入图片描述
c++代码实现:

#include<iostream>
using namespace std;
const int MAXSIZE=1000;
class stack         //栈
{
   
public:
    stack(){
   	//初始化
        top=-1;
    }
    bool isFull(){
   	//判满
        if(top==MAXSIZE-1){
   
            return 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值