顺序栈的实现(SqStack, C++版)

这是一个C++实现的顺序栈模板类,包括构造函数、析构函数、栈的操作如判断栈空、栈满、压栈、出栈、读取栈顶元素以及清空栈。还提供了一个将十进制数转换为2-36进制字符串的函数。在main函数中展示了栈的使用示例。
摘要由CSDN通过智能技术生成

/* stack.h */
#ifndef __SQSTACK_H__
#define __SQSTACK_H__ 1

#include <iostream.h>

extern "C" { void exit(int); }

const int nDefaultStackSize = 50; //缺省Stack元素个数

//以下为栈的顺序存储结构(顺序栈)的C++类定义
template <class T> //声明为模板类
class Stack {
private:
    T   *stacklist; //存放栈元素的指针
    int stacksize;  //存放栈(数组)大小
    int top;        //指示栈顶元素的位置(数组下标)
public:
    //构造函数
    Stack(int initSize = nDefaultStackSize) {
        if (initSize < 1) initSize = nDefaultStackSize;
        stacklist = new T[initSize]; //为stacklist分配存储空间
        if (!stacklist) {
            cerr << "为Stack分配存储空间失败!程序将终止。"
                 << endl;
            exit(1);
        }
        stacksize = initSize; //初始化栈大小
        top = -1; //初始化栈顶位置
    }
    //析构函数
    ~Stack() {

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值