突破30日均线选股公式:向量及单链表实现栈的界面

来源:百度文库 编辑:中财网 时间:2024/04/29 17:22:14
/***********************************************/用向量实现的栈:
template
struct Stack : private std::vector {            //向量栈从向量类模板派生;
typedef std::vector 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
struct Lstack : private Slist {                      //单链表栈从单链表类模板中私有派生;         
typedef Slist 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 stk;
    do{
        stk.push(digit_char[value % base]);
        value /= base;
    } while(value > 0);
    while(!stk.empty())
    {
        result += stk.top();
        stk.pop();
    }
return result;
}/********************************************************/