数据结构笔记——堆栈

1.特点:

  • 先进后出
  • 只在一端(栈顶)进行插入删除操作

2.堆栈ADT

  • 类型名:Stack;
  • 数据对象集:一个有0个或多个元素的有穷线性表;
  • 操作集:
    1.Stack() :构造函数,生成空堆栈,最大程度maxSize;
    2.IsFull():判空;
    3.IsEmpty():判满;
    4.Push():插入栈顶元素;
    5.Pop():删除并返回栈顶元素;

3.堆栈的顺序实现

//代码未测试
#include <iostream>
#include <stdio.h>
using namespace stdtemplate <class T>
class Stack{
public:
    Stack(int maxSize);
    ~Stack();
    bool IsFull();
    bool IsEmpty();
    bool Pop(T &x);
    bool Push(T x);
private:
    int top; //指向当前栈顶元素所在位置
    T *s;
    int maxSize;    
};

template <class T>
Stack ::Stack(int n){
    maxSize = n;
    s = new T[maxSize];
    top = -1;
}

template <class T>
Stack ::~Stack(){
    delete []s;
    s = NULL;
}

template <class T>
bool IsFull(){
    if(top == maxSize-1) return true;
    else return 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值