• 设计单向链表


    设计单向链表

    标签: C++


    以重复造轮子为目的设计一个单向链表。

    链表单元

    class CList
    {
    public:
        CList()
        {
            pPre = NULL;
        };
        ~CList();
        CList* pPre;
    }
    

    链表生成

    CList* pLast = NULL;
    while(1)
    {
        CList *pCurrent = new CList();
        pCurrent->pPre = pLast;
        pLast = pCurrent;
    }
    

    这是个无穷链表,pLast指向最近加上的单元,pLast->pPre->pPre->pPre...一直可以查到最开始的元素,最开始的元素的标志就是它的成员指针pPre = NULL。

    自动化的单向链表

    自动化的链表,可以将链接工作放到单元内部,扩充单元。

    class CList
    {
    public:
        CList()
        {
            pPre = pLast;
            pLast = this;
        };
        ~CList();
        CList* pPre;
        static CList* pLast;
    }
    CList* pLast = NULL;//放在cpp里
    

    生成无限单向链表只要:

    while(1)
        CList *pCurrent = new CList();
    

    检索通常只需要:

    CList* check = CList::pLast;
    while(check)
    {
        if(ok) break;
        check = check->pPre;
    }
    

    轮子在哪里

    工控领域的数据结构通常比较简单,通常单向链表已经足够,而涉及实时环境,标准轮子库往往并不令人放心,因此这么简单的单向链表可以放在任何地方,根本不用造,直接用一样。

  • 相关阅读:
    加密
    python数据类型
    json
    xml
    物理层
    计算机网络概述
    js之BOM概述
    消息队列介绍
    linux bond nmcli命令
    linux iostat
  • 原文地址:https://www.cnblogs.com/winshton/p/5554248.html
Copyright © 2020-2023  润新知