打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
向量及单链表实现栈的界面
/***********************************************/
用向量实现的栈:
template <typename T>
struct Stack : private std::vector<T> {            //向量栈从向量类模板派生;
typedef std::vector<T> Base;                          //vector的别名为Base;
Stack(void) : Base(void) { }                             //构造空栈;
bool empty(void)const{ return Base::empty();} //判空函数;
int size(void)const{ return Base::size(); }         //返回栈中元素个数;
T& top(void){ return Base::back(); }                //返回对栈顶元素的引用;
void pop(void){ Base::pop_back(); }                //弹栈;
void push(T const& v){ Base::push_back(v); } //压栈;
void clear(void){ Base::clear(); }                      //清空函数;
};
向量栈类是从向量类派生出来的类结构,它只具有向量类模板
容器的某些功能;是一种后进先出的容器结构;
/***********************************************/

/******************************************************/
Lstack用单量表实现的栈:
template <typename T>
struct Lstack : private Slist<T> {                      //单链表栈从单链表类模板中私有派生;         
typedef Slist<T> Base;                                    //单链表类型的别名Base; 
Lstack(void) : Base(void){ }                             //构造空栈; 
bool empty(void)const{ return Base::empty(); }//判空函数;
int size(void)const{ return Base::size(); }         //返回栈中元素个数; 
T& top(void){ return Base::front(); }                 //返回对栈顶元素的引用;
void pop(void){ Base::pop_front(); }                //弹栈;
void push(T const& v){ Base::push_front(v); } //压栈; 
void clear(void){ Base::clear(); }                     //清空函数; 
};
单链表栈类是单链表类模板的派生类,之有它的部分功能;
是后进先出的存储结构,只能操作栈
顶节点;
/*****************************************************/

/*****************************************************/
用不同进制输出整数(栈的应用)
string print(int value, int base = 10)
{
    string digit_char = "0123456789ABCDEF";
    string result = "";
    if(value < 0)
    {
       value = -value;
       result += "-";
    }
    stack<char> stk;
    do{
        stk.push(digit_char[value % base]);
        value /= base;
    } while(value > 0);
    while(!stk.empty())
    {
        result += stk.top();
        stk.pop();
    }
return result;
}
/********************************************************/
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
解读C 编程中类模板的三种特化
第一章C语言——静态库和动态库很多时候需要把一组代码编译成一个库,这个库在很多项目中都要用到。1)
C++ STL 容器技术之 vector向量容器
将递归转化成迭代的通用技术
剑指 Offer 30. 包含min函数的栈
创建静态库和动态库
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服