中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

深圳網(wǎng)站建設(shè)智能 樂云踐新淘寶站內(nèi)推廣方式有哪些

深圳網(wǎng)站建設(shè)智能 樂云踐新,淘寶站內(nèi)推廣方式有哪些,wordpress收費(fèi)主題下載,有誰知道哪個網(wǎng)址前言 數(shù)據(jù)結(jié)構(gòu)入門 — 雙向鏈表詳解* 博客主頁鏈接:https://blog.csdn.net/m0_74014525 關(guān)注博主,后期持續(xù)更新系列文章 文章末尾有源碼 *****感謝觀看,希望對你有所幫助***** 系列文章 第一篇:數(shù)據(jù)結(jié)構(gòu)入門 — 鏈表詳解_單鏈表…

前言

數(shù)據(jù)結(jié)構(gòu)入門 — 雙向鏈表詳解*
博客主頁鏈接:https://blog.csdn.net/m0_74014525
關(guān)注博主,后期持續(xù)更新系列文章
文章末尾有源碼
*****感謝觀看,希望對你有所幫助*****


系列文章

第一篇:數(shù)據(jù)結(jié)構(gòu)入門 — 鏈表詳解_單鏈表
第二篇:數(shù)據(jù)結(jié)構(gòu)入門 — 鏈表詳解_雙向鏈表
第三篇:數(shù)據(jù)結(jié)構(gòu)入門 — 鏈表詳解_循環(huán)鏈表


文章目錄

  • 前言
  • 系列文章
  • 什么是雙向鏈表
  • 概念與結(jié)構(gòu)(圖文)
  • 雙向鏈表與單鏈表的區(qū)別
  • 帶頭雙向循環(huán)鏈表接口實(shí)現(xiàn)(代碼演示)
    • 1. 動態(tài)存儲結(jié)構(gòu)
    • 雙向鏈表打印
    • 增刪查改接口
    • 雙向鏈表銷毀
  • 五、所有文件代碼
    • 1. Gitee鏈接
  • 總結(jié)


什么是雙向鏈表

雙向鏈表(Doubly Linked List)是一種鏈表數(shù)據(jù)結(jié)構(gòu),它的每個節(jié)點(diǎn)都含有兩個指針,一個指向前一個節(jié)點(diǎn),一個指向后一個節(jié)點(diǎn)。相比較于單向鏈表,雙向鏈表可以雙向遍歷,即可以從頭到尾或從尾到頭遍歷鏈表。在雙向鏈表中,每個節(jié)點(diǎn)包含兩個指針域和一個數(shù)據(jù)域。其中,一個指針指向前驅(qū)節(jié)點(diǎn),另一個指針指向后繼節(jié)點(diǎn)。這兩個指針使得雙向鏈表的插入、刪除等操作不需要像單向鏈表那樣需要遍歷整個鏈表來尋找前驅(qū)節(jié)點(diǎn),提高了鏈表的操作效率。

概念與結(jié)構(gòu)(圖文)

在這里插入圖片描述
帶頭雙向循環(huán)鏈表:結(jié)構(gòu)最復(fù)雜,一般用在單獨(dú)存儲數(shù)據(jù)。實(shí)際中使用的鏈表數(shù)據(jù)結(jié)構(gòu),都是帶頭雙向循環(huán)鏈表。另外這個結(jié)構(gòu)雖然結(jié)構(gòu)復(fù)雜,但是使用代碼實(shí)現(xiàn)以后會發(fā)現(xiàn)結(jié)構(gòu)會帶來很多優(yōu)勢,實(shí)現(xiàn)反而簡單了,后面我們代碼實(shí)現(xiàn)了就知道了。

雙向鏈表與單鏈表的區(qū)別

雙向鏈表和單鏈表是兩種不同的鏈表結(jié)構(gòu)。

單向鏈表是一種鏈表,在每個節(jié)點(diǎn)中包含指向下一個節(jié)點(diǎn)的指針。這意味著在單向鏈表中,節(jié)點(diǎn)只能從頭開始遍歷到尾部。在單向鏈表中,每個節(jié)點(diǎn)只存儲指向下一個節(jié)點(diǎn)的指針,而不存儲指向前一個節(jié)點(diǎn)的指針。

雙向鏈表是一種鏈表,在每個節(jié)點(diǎn)中包含指向下一個節(jié)點(diǎn)和前一個節(jié)點(diǎn)的指針。這意味著在雙向鏈表中,節(jié)點(diǎn)可以被從頭到尾或從尾到頭遍歷。在雙向鏈表中,每個節(jié)點(diǎn)存儲指向前一個節(jié)點(diǎn)和下一個節(jié)點(diǎn)的指針。

因此,雙向鏈表可以更方便地進(jìn)行雙向遍歷,但是需要更多的內(nèi)存空間來存儲每個節(jié)點(diǎn)的兩個指針。相比之下,在單向鏈表中,只需要一個指針來指向下一個節(jié)點(diǎn),因此內(nèi)存占用量更小。

帶頭雙向循環(huán)鏈表接口實(shí)現(xiàn)(代碼演示)

帶頭+雙向+循環(huán)鏈表增刪查改實(shí)現(xiàn)

1. 動態(tài)存儲結(jié)構(gòu)

typedef int STDataType;
typedef struct ListNode
{struct ListNode* prev;struct ListNode* next;STDataType data;
}LTNode;

雙向鏈表打印

void LTPrint(LTNode* phead)
{assert(phead);printf("phead<->");//跳過哨兵位LTNode* cur = phead->next;while (cur != phead){printf("%d<->", cur->data);cur = cur->next;}printf("\n");
}

增刪查改接口

根據(jù)增刪查改順序編排
雙向鏈表頭插:

//頭插
void  LTPushFront(LTNode* phead, STDataType x)
{assert(phead);LTNode* newnode = BuyLTNode(x);LTNode* first = phead->next;newnode->next = first;first->prev = newnode;phead->next = newnode;newnode->prev = phead;}

雙向鏈表尾插:

//尾插
void LTPushBack(LTNode* phead, STDataType x)
{assert(phead);LTNode* newnode = BuyLTNode(x);//找到最后一個LTNode* tail = phead->prev;newnode->prev = tail;tail->next = newnode;newnode->next = phead;phead->prev = newnode;
}

雙向鏈表頭刪:

//頭刪
void LTPopFront(LTNode* phead)
{assert(phead);assert(phead->next != phead);LTNode* first = phead->next;LTNode* second = first->next;free(first);phead->next = second;second->prev = phead;}

雙向鏈表尾刪:

//尾刪
void LTPopBack(LTNode* phead)
{assert(phead);assert(phead->next != phead);LTNode* tail = phead->prev;LTNode* tailprev = tail->prev;free(tail);phead->prev = tailprev;tailprev->next = phead;}

查找:

LTNode* LTFind(LTNode* phead, STDataType x)
{assert(phead);LTNode* cur = phead->next;while (cur != phead){if (cur->data == x){return cur;}cur = cur->next;}return NULL;
}

在指點(diǎn)位置插入:

void LTInsert(LTNode* pos, STDataType x)
{LTNode* newnode = BuyLTNode(x);LTNode* posprev = pos->prev;newnode->next = pos;pos->prev = newnode;posprev->next = newnode;newnode->prev = posprev;}

在指點(diǎn)位置刪除:

// 把pos刪除
void LTErase(LTNode* pos)
{LTNode* posprev = pos->prev;LTNode* posnext = pos->next;free(pos);posprev->next = posnext;posnext->prev = posprev;
}

雙向鏈表銷毀

void LTDestory(LTNode* phead)
{LTNode* cur = phead->next;while (cur != phead){LTNode* next = cur->next;free(cur);cur = next;}free(phead);phead = NULL;
}

五、所有文件代碼

1. Gitee鏈接

***查看所有代碼***
點(diǎn)擊右邊藍(lán)色文字 DuckBro Gitee 代碼倉庫


總結(jié)

帶頭雙向循環(huán)鏈表的基本概念和常見操作。帶頭雙向循環(huán)鏈表是一種特殊的雙向鏈表,它多了一個頭節(jié)點(diǎn)和一個尾節(jié)點(diǎn),并且首尾相連形成一個環(huán)。

這樣可以實(shí)現(xiàn)循環(huán)遍歷鏈表。在帶頭雙向循環(huán)鏈表中,插入、刪除節(jié)點(diǎn)等操作都有特殊處理方式。帶頭雙向循環(huán)鏈表在實(shí)際應(yīng)用中比較常見,如操作系統(tǒng)中的進(jìn)程管理、音樂播放器中的播放列表等。


如這篇博客對大家有幫助的話,希望 三連 支持一下 !!! 如果有錯誤感謝大佬的斧正 如有 其他見解發(fā)到評論區(qū),一起學(xué)習(xí) 一起進(jìn)步。

http://www.risenshineclean.com/news/48903.html

相關(guān)文章:

  • 男人最愛的做網(wǎng)站站長之家統(tǒng)計
  • 怎樣創(chuàng)建網(wǎng)站詳細(xì)步驟seo技術(shù)優(yōu)化服務(wù)
  • 有經(jīng)驗(yàn)的南昌網(wǎng)站制作百度關(guān)鍵詞優(yōu)化策略
  • 廣告網(wǎng)站模板下載 迅雷下載安裝網(wǎng)站維護(hù)費(fèi)一年多少錢
  • WordPress網(wǎng)站論文微信小程序開發(fā)文檔
  • 免費(fèi)模板建站寧德市醫(yī)院東僑院區(qū)
  • 做網(wǎng)站自動賺錢網(wǎng)絡(luò)推廣都需要做什么
  • 佛山專注網(wǎng)站制作細(xì)節(jié)長沙縣網(wǎng)絡(luò)營銷咨詢
  • 網(wǎng)站開發(fā)工程師培訓(xùn)seo是什么職業(yè)
  • 兼職網(wǎng)站開發(fā)全部視頻支持代表手機(jī)瀏覽器
  • 三河建設(shè)局網(wǎng)站熱門seo推廣排名穩(wěn)定
  • 網(wǎng)站備案 修改優(yōu)化seo廠家
  • 網(wǎng)站制作 徐州晉江怎么交換友情鏈接
  • 怎樣到國外做合法博彩法網(wǎng)站河南鄭州最新消息
  • 錦州做網(wǎng)站全網(wǎng)營銷與seo
  • 幫別人做設(shè)計圖的網(wǎng)站渠道推廣策略
  • 旺旺號查詢網(wǎng)站怎么做百度推廣個人怎么開戶
  • 公司網(wǎng)站怎么做才能有官網(wǎng)二字推廣營銷軟件app
  • 上海網(wǎng)站建設(shè)公司介紹seo關(guān)鍵詞排名軟件流量詞
  • 免費(fèi)軟件網(wǎng)站下載深圳靠譜網(wǎng)站建設(shè)公司
  • 品牌網(wǎng)站建設(shè)的要點(diǎn)培訓(xùn)心得體會1000字通用
  • wordpress的小程序網(wǎng)站優(yōu)化哪家好
  • iis php服務(wù)器搭建網(wǎng)站杭州優(yōu)化外包
  • 國內(nèi)免費(fèi)saas crm正在seo sem
  • 愛城市網(wǎng)官方下載武漢網(wǎng)站推廣優(yōu)化
  • wordpress登陸鏈接seo兼職
  • 微信公眾號接口開發(fā)西安seo關(guān)鍵詞排名
  • 吉林網(wǎng)站模板系統(tǒng)優(yōu)化助手
  • c 網(wǎng)站開發(fā)商城網(wǎng)站建設(shè)
  • 內(nèi)江市網(wǎng)站建設(shè)如何發(fā)布自己的html網(wǎng)站