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.带有头尾指针的单链表与双向链表初始化的不同:见红色部分!!

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

  • 相关阅读:
    P3822 [NOI2017]整数
    P4630 [APIO2018] Duathlon 铁人两项
    P3230 [HNOI2013]比赛
    P2570 [ZJOI2010]贪吃的老鼠
    P4576 [CQOI2013]棋盘游戏
    P3256 [JLOI2013]赛车
    P3297 [SDOI2013]逃考
    CF487E Tourists
    设置一个双色球脚本(2)并带颜色输出
    设置一个双色球脚本
  • 原文地址:https://www.cnblogs.com/fuleying/p/3405099.html
Copyright © 2011-2022 走看看