zoukankan      html  css  js  c++  java
  • 循环链表

    链表的一种特殊形式,最后一个结点的指针域指向头结点,整个链表形成一个环

    由于其实现与链表相差不大,此仅给出循环链表定义,具体实现推荐去作者GitHub页面查看

    (下面代码只是最初实现,后续如果有修改,由于太麻烦,不会再更改下文,仅仅更新Github上的代码文件)

    class CircularList {
    public:
        CircularList();
        CircularList(int len);
        ~CircularList();
    
        LNode *CircularListHead() {
            return head;
        }
    
        LNode *CListHead() {
            return head;
        }
    
        // 获取链表长度
        int CListLength();
    
        // 判断链表是否为空
        bool CListEmpty();
    
        // 返回链表中第pos个结点
        bool GetNode(int pos, LNode **node);
    
        // 返回指定data在链表中第一次出现的位置
        bool LocateNode(ElemType ele, LNode **node);
    
        // 在指定位置插入后一个结点,但若pos为0是表示在链表头插入一个结点
        bool CListInsert(int pos, LNode *node);
    
        // 删除指定位置结点
        bool CListDelete(int pos);
    
        // 删除指定位置结点并返回被删除结点的信息
        bool CListDelete(int pos, LNode *node);
    
        // 遍历线性表
        void CListTraverse();
    
        // 在链表尾添加cnt个结点
        bool CListAddNodes(int cnt);
    
        // 销毁链表,释放所有结点资源
        void CListDestory();
    
    private:
        LNode *head;    // 循环链表头结点,不储存数据,逻辑上不属于链表的结点,当head->next == head时为空循环链表
    };
  • 相关阅读:
    [CentOS7] 安装sogou输入法
    [CentOS7] vncviewer与windows之间的复制粘贴
    linux solr7.2+tomcat8 详细部署整合
    linux solr 安装
    linux dubbo-admin-2.6.0 环境搭建
    linux tomcat安装
    linux jdk安装
    linux Nginx-1.10.2 安装部署教程
    linux技巧---创建应用快捷方式
    linux MySQL 5.7+keepalived 主备服务器自主切换
  • 原文地址:https://www.cnblogs.com/lnlin/p/10846730.html
Copyright © 2011-2022 走看看