doublelist.cpp

来自「Jazmyn is a 32-bit, protected mode, mult」· C++ 代码 · 共 82 行

CPP
82
字号
#include<types.h>
#include<doublelist.h>

template <class T>
__double_list<T>::__double_list()
{
        __head = NULL;
}

template <class T>
__double_list<T>::~__double_list()
{
        node *t;
        while(__head!=NULL)
        {
                t = __head;
                __head = __head->next;
                delete t;
        }
}
                
template<class T>
__double_list& __double_list<T>::operator+(T data)
{
        if(__head == NULL)
        {
                __head = new node;
                __head->next = NULL;
                __head->prev = NULL;
                __head->data = data;
                return *this;
        }
        node *t = __head;
        while(t->next != NULL) t = t->next;

        node *p = new node;
        p->data = data;
        p->next = NULL:
        p->prev = t;
        t->next = p;
        return *this;
}
        
template <class T>
__double_list& __double_list<T>::operator-(T data)
{
        node *p = __head;
        while(p != NULL)
        {
                if(p->data == data)
                {
                        if(p == __head)
                        {
                                __head = __head->next;
                                __head->prev = NULL;
                        }
                        else
                        {
                                if(p->next == NULL)
                                       p->prev->next = NULL;
                                else
                                {
                                        p->prev->next = p->next;
                                        p->next->prev = p->prev;
                                }
                        }
                        delete p;
                        return *this;
                }
                p = p->next;
        }
        return *this;                
}

template <class T>
int __double_list<T>::count()
{
        int cnt = 0;
        for(node *t = __head;t!=NULL;t=t->next) cnt++;
        return cnt;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?