zoukankan      html  css  js  c++  java
  • 基于数据存储管理的带有头尾指针的双向链表创建实例

    1.基于LRU算法的带有头尾指针的双向链表的数据结构

    typedef struct LRUEle        //LRU链表结点
    {
        LRUEle();
        int fid;                //帧号
        double b2dtime;            //最后两次使用的时间间隔
        struct LRUEle * next;    //后指针
        struct LRUEle * prior;    //前指针
    }Link;
    
    struct LRULinkList        //LRU链表
    {
        Link *head;            //头指针
        Link *tail;            //尾指针
    };

    2.建立一个带有头结点的空双向链表

    LRULinkList *lruList;
        //初始化一个带有头结点的空LRU双向链表
        Link * head=new LRUEle();  
        head->next = head;
        head->prior = head;
        Link * tail = head; 
      
        lruList=(LRULinkList *)malloc(sizeof(LRULinkList));  
     
        lruList->head=head;  
        lruList->tail=tail; 

    3.错误的实现方法

        //    Link * head=new LRUEle();   
        //  Link * tail=new LRUEle();   初始化时头尾指针已同一个结点,不应分配两个不同的内存空间
     
        //  head->next=tail;    这样的实现,相当于建立了两个空的头结点;对于插入、删除没有一点好处,而且浪费内存空间
        //  tail->next=head;  
        //  head->prior=tail;  
        //  tail->prior=head;  

    4.带有头尾指针的单链表的数据结构

    typedef struct LNode {//结点类型  
        ElemType data;  
        struct LNode * next;  
    } Link, * Position;  
      
    typedef struct {//链表类型  
        Link * head;  
        Link * tail;    
    } LinkList; 

    5.带有头尾指针的单链表的初始化

        LinkList * l = (LinkList *)malloc(sizeof(LinkList));
        l->head = (Link *)malloc(sizeof(Link));  
        l->tail = (Link *)malloc(sizeof(Link));  
        if(!l->head || !l->tail)  
            exit(OVERFLOW);  
        l->head = l->tail;  
        l->tail->next = NULL;  
        return OK;  

    6.带有头尾指针的单链表与双向链表初始化的不同:见红色部分!!

    一定要注意对只含头尾指针的结构体分配内存空间(红色部分)。

  • 相关阅读:
    【RobotFramework自动化测试】数据库值验证
    【Python】列表各种操作
    python开发之路之线程、进程、协程
    python开发之路SocketServer
    python开发之路之I/O多路复用
    python开发之路1---多并发Ftp的开发
    python网络编程1
    python面向对象编程(扩展) && python中的反射操作
    python基础5-面向对象编程
    基于python实现的计算器
  • 原文地址:https://www.cnblogs.com/fuleying/p/3405099.html
Copyright © 2011-2022 走看看