C++写的堆栈Stack操作函数

发布时间:2016-12-9 0:23:29 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"C++写的堆栈Stack操作函数",主要涉及到C++写的堆栈Stack操作函数方面的内容,对于C++写的堆栈Stack操作函数感兴趣的同学可以参考一下。

有了List的基础后,那么就可以在List之上构造其他的数据结构,比如说Stack,下面就通过实例代码给出通过适配器模式写出的Stack代码,由于适配器可以通过两种方式实现,继承和组合,一下分别给出: 继承方式: Stack.h #ifndef STACK_H #define STACK_H #include "List.h" class Stack : private List{ public:    void push(int);    void pop();    bool isStackEmpty();    void printStack(); }; #endif Stack.cpp #include "Stack.h" void Stack::push(int value){    insertAtFront(value); } void Stack::pop(){    removeFromFront(); } bool Stack::isStackEmpty(){    return isEmpty(); } void Stack::printStack(){    print(); } 通过比较可以看到Stack实现代码相对List来说减少很多,这就是通过继承代码复用得到的好处。这里继承使用的private私有继承,表示“以...实现”的语义。 组合方式, ComStack.h #ifndef COMSTACK_H #define COMSTACK_H #include "List.h" class Stack{ public:    void push(int);    void pop();    bool isStackEmpty();    void printStack(); private:    List list; }; #endif ComStack.cpp #include "ComStack.h" void Stack::push(int value){    list.insertAtFront(value); } void Stack::pop(){    list.removeFromFront(); } bool Stack::isStackEmpty(){    return list.isEmpty(); } void Stack::printStack(){    list.print(); } 可以看到继承方式中通过调用继承自基类的方法操作数据,而组合方式通过将操作委托给List来完成所需工作,这是两种不同的适配器编码方式,根据设计模式中的原则,应该是多用组合少用继承。

上一篇:关于Java浮点数运算精度丢失问题
下一篇:在 Web 项目中应用 Apache Shiro

相关文章

相关评论