多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作
来源:互联网 发布:linux dhcp option 66 编辑:程序博客网 时间:2024/06/07 22:34
代码如下:
#include <iostream>using namespace std;template<typename t>struct tcontainer{virtual void push(const t&) = 0;virtual void pop() = 0;virtual const t&begin() = 0;virtual const t&end() = 0;virtual size_t size() = 0;};template<typename t>struct tvector:public tcontainer<t>{static const size_t _step = 100;tvector(){_size = 0;_cap = _step;buf = 0;re_capacity(_cap);}~tvector(){free(buf);}void re_capacity(size_t s){if (!buf)buf = (t*)malloc(sizeof(t)*s);elsebuf = (t*)realloc(buf, sizeof(t)*s);}virtual void push(const t& v){if (_size>=_cap){re_capacity(_cap += _step);//capcity与size之间的关系}buf[_size++] = v;}virtual void pop(){if (_size)_size--;}virtual const t& begin(){return buf[0];}virtual const t& end(){if (_size)return buf[_size-1];}virtual size_t size(){return _size;}const t& operator[](size_t i){if (i>=0&&i<_size){return buf[i];}}private:size_t _size;size_t _cap;t* buf;};void main(){tvector<int>v;for (int i = 0; i < 1000;++i){v.push(i);}for (int i = 0; i < 1000; ++i){cout << v[i] << endl;}system("pause");}
0 0
- 多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作
- 试用多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作:插入,删除,测长等。
- 多态实现线性表(队列,串,堆栈)
- 多态实现线性表(队列、串、堆栈)
- 线性表、堆栈、队列的实现总结
- 线性表----队列(顺序表示)的基本操作
- 线性表----循环队列(顺序表示)的基本操作
- 线性表----队列(链接表示)的基本操作
- 线性表、堆栈以及队列
- 线性表的基本操作和实现
- 线性表的基本实现与操作
- 线性表的实现及其基本操作
- 线性表的基本操作实现
- C语言线性表循环队列的基本操作
- 线性表的基本操作(数组实现)
- 顺序线性表的基本操作(C语言实现)
- 线性表的基本操作
- 线性表的基本操作
- Android酷炫实用的开源框架(UI)
- 色彩空间转换
- Linux下查看系统版本号信息的方法
- Java的四种引用,强弱软虚,用到的场景
- 网络获取xml文件,pull解析listVist展示
- 多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作
- Java工具箱之常见处理文件操作
- Android 各大网络请求库的比较及实战
- PHP CURL访问HTTPS使用详解
- 在Android上使用qemu-user运行可执行文件
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 传智播客支持中国制造2025人才培养工程
- eclipse + android 使用技巧
- windows7 下搭建golang开发环境