【技巧】通过适配器模式完成栈的数据结构
2016-05-28 18:36
323 查看
学习了模板,我们发现,c++中的众多数据结构,如栈与队列跟模板,只是方法上与线性表不同,其真正意义上的结构,也就是线性表,代码如下:
template <typename T>
class SeqList
{
private :
int _size ;
int _capacity ;
T* _data ;
};
// template <class T, template<class> class Container>
template <class T, template <class> class Container = SeqList > // 缺省参数
class Stack
{
public :
void Push (const T& x )//入栈
{
PushBack();
}
void Pop ()//出栈
{
PopBack();
}
const T & Top();//获得栈顶数据
bool Empty ();//判断是否为空栈
private :
Container<T > _con;
};
void Test ()
{
Stack<int > s1;
Stack<int , SeqList> s2;
} 其意义也就是利用模板的模板参数,对线性表进行二次封装。
如有不足之处希望指正
本文出自 “pawnsir的IT之路” 博客,请务必保留此出处http://10743407.blog.51cto.com/10733407/1752656
template <typename T>
class SeqList
{
private :
int _size ;
int _capacity ;
T* _data ;
};
// template <class T, template<class> class Container>
template <class T, template <class> class Container = SeqList > // 缺省参数
class Stack
{
public :
void Push (const T& x )//入栈
{
PushBack();
}
void Pop ()//出栈
{
PopBack();
}
const T & Top();//获得栈顶数据
bool Empty ();//判断是否为空栈
private :
Container<T > _con;
};
void Test ()
{
Stack<int > s1;
Stack<int , SeqList> s2;
} 其意义也就是利用模板的模板参数,对线性表进行二次封装。
如有不足之处希望指正
本文出自 “pawnsir的IT之路” 博客,请务必保留此出处http://10743407.blog.51cto.com/10733407/1752656
相关文章推荐
- 数据结构上机测试1:顺序表的应用
- 经典算法和数据结构(一) 优先级队列与堆排序
- 《C专家编程》:C程序运行时的数据结构(六)
- 广义表
- 数据结构—二叉树的遍历—递归
- 哈希表(开链法)
- c实现哈希查找
- 尾递归
- 谈谈数据结构课后作业......尴尬不已...《图》 后面的迷宫问题
- 数据结构—二叉树基本操作
- 半边数据结构(The_Half-Edge_Data_Structure)
- 经典算法和数据结构(四) 平衡查找树之B树
- 经典算法和数据结构(三): 平衡查找树之红黑树
- 数组的基础知识
- 一点资源【1、嵌入式的视频,里面有数据结构】
- SDUT1138数据结构上机测试2-1:单链表操作A
- AVL树C实现
- 数据结构——栈
- 数据结构与算法分析(5)表、栈和队列(一)
- 数据结构与算法分析(4)算法分析的编程练习