博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
栈的初步学习
阅读量:6535 次
发布时间:2019-06-24

本文共 1364 字,大约阅读时间需要 4 分钟。

栈有两种实现方法,其一是基于数组的栈,其二是基于链表的栈,下面是我学习到一些栈的相关操作模板(基于数组):

class ArrayStack{public:    ArrayStack(int s = 10);    /*初始化栈容量*/    ~ArrayStack(); public:    int top();            /*栈顶*/    void push(int t);        /*进栈*/    int pop();            /*出栈*/    bool isEmpty();        /*判空*/    int size();            /*栈大小*/ private:    int count;            /*栈元素数量*/    int capacity;        /*栈容量*/    int * array;            /*底部数组*/};int ArrayStack::top()   /*栈顶*/{     if (count != 0)     {         return array[count - 1];     }};void ArrayStack::push(int t)  /*进栈*/{     if (count != capacity)    /*是否栈满*/     {         array[count++] = t;        }};int ArrayStack::pop()    /*出栈*/{     if (count != 0)    /*是否栈空*/     {         return array[--count];     }};bool ArrayStack::isEmpty()   /*栈空*/{     return count == 0; };int ArrayStack::size()   /*栈大小*/{     return count;};

这种栈只能输入int型数据,如果想要输入其它类型,可以用函数模板的知识,如:

template
class ArrayStack{public: ArrayStack(int s = 10); /*初始化栈容量*/ ~ArrayStack(); public: T top(); /*栈顶*/ void push(T t); /*进栈*/ T pop(); /*出栈*/ bool isEmpty(); /*判空*/ int size(); /*栈大小*/ private: int count; /*栈元素数量*/ int capacity; /*栈容量*/ T * array; /*底部数组*/};

其它函数的定义加上虚拟类型参数即可。

转载于:https://www.cnblogs.com/52wu244/p/6895329.html

你可能感兴趣的文章
如何把word中的图片怎么导出来呢?
查看>>
CMD指令大全
查看>>
十五天精通WCF——第二天 告别烦恼的config配置
查看>>
Qt多线程学习:创建多线程
查看>>
设计模式学习---UML常见关系的实现
查看>>
图解openssl实现私有CA
查看>>
BZOJ2213 : [Poi2011]Difference
查看>>
c++ Constructor FAQ 继续
查看>>
事务之六:spring 嵌套事务
查看>>
C#:路径
查看>>
js表单计算金额问题
查看>>
iOS图片加载速度极限优化—FastImageCache解析
查看>>
PHP中的一些新特性
查看>>
Jmockit使用
查看>>
I.MX6 Android mmm convenient to use
查看>>
[CareerCup] 13.9 Aligned Malloc and Free Function 写一对申请和释放内存函数
查看>>
Stack and Heap 堆和栈的区别
查看>>
什么是 A 轮融资?有 B轮 C轮么?
查看>>
55、Android网络图片 加载缓存处理库的使用
查看>>
svn文件提交时强制写注释
查看>>