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

    
    

    为了提高访问效率,引入了双向链表的内容。但是双向链表需要占用更多内存,也并不是绝对有优势。

    
    

    由于链表操作基本一致,只给出插入和删除操作。(其它参考上一篇(链表))



    /*
    ------------------------------------------ 函数名:remove 描 述:删除指定位置的数据 入口参数:位置 出口参数:enum returninfo枚举型,判断是否成功 -------------------------------------------*/ enum returninfo remove(int position) { int i; PNODE searchp = headp->next; //平时定义的followp在双向链表中不需要哦, for (i = 0; i < position && searchp != headp; i++) { searchp = searchp->next; } searchp->previous->next = searchp->next; searchp->next->previous = searchp->previous; free(searchp); count--; return success; } /*------------------------------------------ 函数名:insert 描 述:插入数据到指定位置 入口参数:位置,数据 出口参数:enum returninfo枚举型,判断是否成功 -------------------------------------------*/ enum retuninfo insert(int position, int item) { int i; PNODE searchp = headp; PNODE newnodep = (PNODE)malloc(len); for (i = 0; i < position && searchp->next != headp; i++) { searchp = searchp->next; } newnodep->next = searchp->next; searchp->next->previous = newnodep; seachhp->next = newnodep; newnodep->previous = searchp; count++; return success; }

      

  • 相关阅读:
    Ubuntu下录音机程序的使用
    Bash中的数学计算
    Bash中的数学扩展
    Bash的命令替换
    top的用法
    VirtualBox的快照功能
    格式化输出和printf命令
    read命令读取用户输入
    Bash的作业控制
    Codeforces Round #455 (Div. 2)
  • 原文地址:https://www.cnblogs.com/WineinSeptember/p/12755457.html
Copyright © 2011-2022 走看看