close

#ifndef LINK_H
#define LINK_H


template<typename E>
class Link
{
private:
    static Link<E>* freelist;
public:
    E element;
    Link<E>* next;

    Link(const E& elemval, Link<E>* nextval = NULL)
    {
        element = elemval;
        next = nextval;
    }

    Link(Link<E>* nextval = NULL)
    {
        next = nextval;
    }
    
    void* operator new (size_t)
    {
        if(freelist == NULL) return ::new Link;
        Link<E>* temp = freelist;
        freelist = freelist->next;
        return temp;
    }
    
    void operator delete(void* ptr)
    {
        ((Link<E>*) ptr)->next = freelist;
        freelist = (Link<E>*)ptr;
    }
    
};

template<typename E>
Link<E>* Link<E>::freelist = NULL;
#endif

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 awe31402 的頭像
    awe31402

    awe的程設筆記

    awe31402 發表在 痞客邦 留言(0) 人氣()