SeqStack(Template<class T>)实现
来源:互联网 发布:sqlserver 升级 编辑:程序博客网 时间:2024/05/19 20:19
顺序表实现模板栈(第二次)
这是发过的一个版本的栈的链接
这次用模板再做了一遍
配有测试过的main函数,可以直接学习使用。
#include <iostream>using namespace std;template<class T>class SeqStack{public: SeqStack(int sz = 50); ~SeqStack(){ delete[]element; }; bool push(const T& x); bool pop(); bool getTop(T& x)const; bool isEmpty()const; bool isFull()const; int getSize()const; void makeEmpty(); template<class U> friend ostream& operator<<(ostream& os, SeqStack<U> s);private: T* element; int maxsize, top;};template<class T>SeqStack<T>::SeqStack(int sz) { if (sz <= 0){ element = NULL; } else { element = new T[sz]; } maxsize = sz; top = -1;}template<class T>bool SeqStack<T>::push(const T& x){ if (isFull()){ return false; } else { element[++top] = x; return true; }} template<class T>int SeqStack<T>::getSize()const { return top + 1;}template<class T>bool SeqStack<T>::pop(){ if (isEmpty()){ return false; } else{ top--; return true; }}template<class T>bool SeqStack<T>::getTop(T& x)const{ if (isEmpty()){ return false; } else { x = element[top]; return true; }}template<class T>void SeqStack<T>::makeEmpty(){ top = -1;}template<class T>bool SeqStack<T>::isFull()const{ return top >= maxsize - 1;}template<class T>bool SeqStack<T>::isEmpty()const{ return top == -1;}template<class U>ostream& operator<<(ostream &os, SeqStack<U> s){ os<< "maxsize = "<< s.maxsize<< " top = "<< s.top<< endl; for (int i = s.top; i >= 0; --i){ os << s.element[i]; if (i != 0) os << " -> "; } return os;}int main(){ SeqStack<int> s; for (int i = 0; i < 20; ++i) s.push(i* 12 - 1); cout << s<< endl; for (int i = 0; i < 10; ++i) s.pop(); cout << s<< endl;}
阅读全文
0 0
- SeqStack(Template<class T>)实现
- template<class T>
- template<class T>
- template<class T>
- template<class T>
- template<class T>
- template<class T>
- template <typename T>和template <class T>
- c++ 模板<template class T> c++ 模板<template class T>
- template<class T>函数模板
- template<class T>函数模板
- template<class T>(转)
- Template<class T>函数模板
- template<class T>函数模板
- 关键字explict、template<class T>
- C++ template<typename T> 和 template<class T>
- C++中template<class T> && template <typename T>(模板区分)
- 模板声明中template <typename T>和template <class T>
- 版本控制-Git简介
- MFS部署及运维
- Zabbix3.2监控OGG延时
- 盒子模型之中心开班信息页面
- 关于ASSERT(断言)的作用
- SeqStack(Template<class T>)实现
- $.each()遍历遇到的坑
- Redis学习-1:Redis在Windows安装
- Java开发中的23种设计模式详解(转)
- eclipse新建maven webapp后无法添加src/main/java和src/main/test
- PHP中AJAX的使用
- Java集合数据存储的总结
- spring的声明式事务
- 解密蓝牙mesh系列 | 第一篇