最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++帶頭雙向循環(huán)鏈表超詳細(xì)解析

 更新時間:2022年03月24日 10:14:46   作者:程序猿教你打籃球  
帶頭雙向循環(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)反而簡單

上期我們講完了無頭單向非循環(huán)鏈表,這期我們接著來講鏈表中結(jié)構(gòu)最復(fù)雜的帶頭雙向循環(huán)鏈表!

本期主要內(nèi)容:

?? 什么是帶頭雙向循環(huán)鏈表?

?? 帶頭雙向循環(huán)鏈表常用接口實(shí)現(xiàn)!

?? 順序表和鏈表的區(qū)別和聯(lián)系!

什么是帶頭雙向循環(huán)鏈表

什么是帶頭?雙向?循環(huán)?(帶頭雙向循環(huán)鏈表)

帶頭:代表鏈表存在一個哨兵位節(jié)點(diǎn),也就是頭節(jié)點(diǎn),這個節(jié)點(diǎn)不存放任何的有效數(shù)據(jù)!

雙向:每個節(jié)點(diǎn)都有兩個指針,分別指向它的前一個節(jié)點(diǎn)和后一個節(jié)點(diǎn)!

循環(huán):最后一個節(jié)點(diǎn)next不再指向NULL指向的是哨兵位節(jié)點(diǎn),哨兵位節(jié)點(diǎn)prev指向的是最后一個節(jié)點(diǎn)!(如果是單項(xiàng)鏈表的話哨兵位不指向最后一個節(jié)點(diǎn)!)

帶頭雙向循環(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)了就知道了!

帶頭雙向循環(huán)鏈表常用接口實(shí)現(xiàn)

?? 搭建帶頭雙向循環(huán)鏈表的結(jié)構(gòu)!

 ?? 帶頭雙向循環(huán)鏈表的初始化并創(chuàng)建新節(jié)點(diǎn)!

 ?? 頭部插入節(jié)點(diǎn)!

 ?? 尾部插入節(jié)點(diǎn)!

 ?? 頭部刪除節(jié)點(diǎn)!

 ?? 尾部刪除節(jié)點(diǎn)!

 ?? 在pos節(jié)點(diǎn)前插入節(jié)點(diǎn)!

我們首先要找到pos節(jié)點(diǎn)的地址! 

ListNode* ListFind(ListNode* phead, LTDataType x)
{
	assert(phead);
	ListNode* cur = phead->next;
	while (cur != phead)
	{
		if (cur->data == x)
		{
			return cur;
		}
		cur = cur->next;
	}
	return NULL;
}

 ?? 刪除指定pos節(jié)點(diǎn)!

 看了上面的那么多的圖解,相信刪除指定節(jié)點(diǎn)對你來說也很簡單吧!我就直接上代碼了!

void ListErase(ListNode* pos)
{
	assert(pos);
	ListNode* prev = pos->prev;
	ListNode* next = pos->next;
	prev->next = next;
	next->prev = prev;
	
	free(pos);
	pos = NULL;
}

?? 最后別忘記銷毀鏈表哦!

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

其實(shí)很多小伙伴一看到數(shù)據(jù)結(jié)構(gòu)就頭疼,但是我想說,不要嫌畫圖麻煩,一定要多畫圖,這樣更有利于我們實(shí)現(xiàn)代碼,靠腦袋空想是想不出來的!

最后愛打籃球的程序猿想送小伙伴們一句話:天再高又怎樣,踮起腳尖就更接近陽光!

gitee(碼云):Mercury. (zzwlwp) - Gitee.com

到此這篇關(guān)于C++帶頭雙向循環(huán)鏈表超詳細(xì)解析的文章就介紹到這了,更多相關(guān)C++ 帶頭雙向循環(huán)鏈表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中的函數(shù)修飾符深入講解

    C++中的函數(shù)修飾符深入講解

    這篇文章主要給大家介紹了關(guān)于C++中函數(shù)修飾符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 對C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說明

    對C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說明

    下面小編就為大家?guī)硪黄獙++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C++移動操作,RVO和NRVO詳細(xì)

    C++移動操作,RVO和NRVO詳細(xì)

    本文將討論了何時C++會自動進(jìn)行移動操作,并且說明了復(fù)制消除,RVO和NRVO優(yōu)的化等香瓜吧資料,需要的小伙伴可以參考一下
    2021-09-09
  • Linux編程實(shí)現(xiàn)制作文件的ed2k鏈

    Linux編程實(shí)現(xiàn)制作文件的ed2k鏈

    這篇文章主要介紹了Linux編程實(shí)現(xiàn)制作文件的ed2k鏈的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • C++實(shí)現(xiàn)俄羅斯方塊小游戲

    C++實(shí)現(xiàn)俄羅斯方塊小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C++超詳細(xì)講解強(qiáng)制類型轉(zhuǎn)換的用法

    C++超詳細(xì)講解強(qiáng)制類型轉(zhuǎn)換的用法

    在C++語言中新增了四個關(guān)鍵字static_cast、const_cast、reinterpret_cast和dynamic_cast。這四個關(guān)鍵字都是用于類型轉(zhuǎn)換的,類型轉(zhuǎn)換(type?cast),是高級語言的一個基本語法。它被實(shí)現(xiàn)為一個特殊的運(yùn)算符,以小括號內(nèi)加上類型名來表示,接下來讓我們一起來詳細(xì)了解
    2022-06-06
  • Qt事件過濾實(shí)現(xiàn)點(diǎn)擊圖片的放大和縮小

    Qt事件過濾實(shí)現(xiàn)點(diǎn)擊圖片的放大和縮小

    這篇文章主要為大家詳細(xì)介紹了Qt事件過濾實(shí)現(xiàn)點(diǎn)擊圖片的放大和縮小,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言詳解鏈?zhǔn)疥?duì)列與循環(huán)隊(duì)列的實(shí)現(xiàn)

    C語言詳解鏈?zhǔn)疥?duì)列與循環(huán)隊(duì)列的實(shí)現(xiàn)

    隊(duì)列(Queue)與棧一樣,是一種線性存儲結(jié)構(gòu),它具有如下特點(diǎn):隊(duì)列中的數(shù)據(jù)元素遵循“先進(jìn)先出”(First In First Out)的原則,簡稱FIFO結(jié)構(gòu)。在隊(duì)尾添加元素,在隊(duì)頭刪除元素,本篇來講解鏈?zhǔn)疥?duì)列與循環(huán)隊(duì)列的實(shí)現(xiàn)
    2022-04-04
  • C++ STL之list雙向鏈表容器方式

    C++ STL之list雙向鏈表容器方式

    這篇文章主要介紹了C++ STL之list雙向鏈表容器方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • C語言二維數(shù)組幾種常用的表示方法

    C語言二維數(shù)組幾種常用的表示方法

    今天小編就為大家分享一篇關(guān)于C語言二維數(shù)組幾種常用的表示方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

元朗区| 福鼎市| 漯河市| 大连市| 阳曲县| 桦南县| 马公市| 白银市| 东兴市| 正阳县| 威远县| 广丰县| 吕梁市| 呼伦贝尔市| 连云港市| 舞阳县| 肃宁县| 横山县| 罗甸县| 威远县| 丰原市| 赣州市| 台南县| 平顺县| 抚州市| 沙雅县| 东阳市| 武冈市| 焦作市| 昭觉县| 沈丘县| 东源县| 手游| 宝鸡市| 察哈| 新津县| 榆林市| 龙州县| 日照市| 彰武县| 刚察县|