设为首页 加入收藏

TOP

双向循环链表的实现(三)
2013-05-03 18:18:22 来源: 作者: 【 】 浏览:119
Tags:双向 循环 实现

 

    return ((first->next == NULL) true : false);

    }

    template<class T>

    void List<T>::input(T endTag)

    {

    makeEmpty();//在输入前先清空链表

    LinkNode<T> *newNode,*last = first;

    T value;

    cin》value;

    while(value != endTag)

    {

    newNode = new LinkNode<T>(value);

    newNode->prior = last;

    last->next = newNode;

    last = newNode;

    cin》value;

    }

    last->next = first;  //重新首尾连接

    first->prior = last;

    }

    template<class T>

    void List<T>::output()//输出

    {

    cout《"双向链表输出如下:"《endl;

    LinkNode<T> *current = first->next;

    int count = 0;

    while(current != first)

    {

    cout《"#"《count+1《":"《current->data《endl;

    current = current->next;

    count++;

    }

    }

    template<class T>

    void List<T>::Sort()//最小选择 排序

    {

    LinkNode<T> *current1,*current2;//下面连续取后继指针把外层循环控制在倒数第二个结点

    for(current1 = first->next ; current1->next != first ; current1 = current1->next)

    {

    for(current2 = current1->next ; current2 != first ; current2 = current2->next)

    {

    if(current1->data > current2->data)

    {

    T temp;

    temp = current1->data;

    current1->data = current2->data;

    current2->data = temp;

    }

    }

    }

    }

    template<class T>

    void List<T>::operator= (List<T> &L)

    {

    makeEmpty();//先全部销毁指针资源

    LinkNode<T> *L_HEAD = L.getHead(); //获取首指针 遍历终止条件

    LinkNode<T> *srcptr = L_HEAD->next; //获取头指针 用于遍历

    LinkNode<T> *destptr = first;   //= new LinkNode<T>;//不用于赋值初始化,只用于复制,不用建立新头结点

    LinkNode<T> *newNode;

    T value;

    while(srcptr != L_HEAD)//直到最后一个结点的尾指针为空结束

    {

    value = srcptr->data;

    newNode = new LinkNode<T>(value);

    newNode->prior = destptr;//往新链表的后面插入

    destptr->next = newNode;

    srcptr = srcptr->next;//后移

    destptr = destptr->next;

    }

    destptr->next = first;//首尾相接 循环

    first->prior = destptr;

    }

        

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇双向链表的实现 下一篇二叉树的12大问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: