迴圈連結串列和雙向連結串列的區別是是什麼

2022-03-14 23:25:56 字數 5414 閱讀 3546

1樓:張震是

1、最後一個結點指標指向不同

在建立一個迴圈連結串列時,必須使其最後一個結點的指標指向表頭結點,而不是像雙向連結串列那樣置為null。此種情況還用於在最後一個結點後插入一個新的結點。

2、判斷鏈域值不同

在判斷是否到表尾時,是判斷該結點鏈域的值是否是表頭結點,當鏈域值等於表頭指標時,說明已到表尾。而非像單連結串列那樣判斷鏈域值是否為null。

3、訪問方式:

迴圈連結串列:可以從任何一個結點開始,順序向後訪問到達任意結點

雙向連結串列:可以從任何結點開始任意向前向後雙向訪問

4、操作:

迴圈連結串列:只能在當前結點後插入和刪除

雙連結串列:可以在當前結點前面或者後面插入,可以刪除前趨和後繼(包括結點自己)

5、儲存:

迴圈連結串列儲存密度大於雙連結串列

擴充套件資料

線性表的鏈式儲存表示的特點是用一組任意的儲存單元儲存線性表的資料元素(這組儲存單元可以是連續的,也可以是不連續的)。因此,為了表示每個資料元素 與其直接後繼資料元素 之間的邏輯關係,對資料元素 來說,除了儲存其本身的資訊之外,還需儲存一個指示其直接後繼的資訊(即直接後繼的儲存位置)。

由這兩部分資訊組成一個"結點"(如概述旁的圖所示),表示線性表中一個資料元素。線性表的鏈式儲存表示,有一個缺點就是要找一個數,必須要從頭開始找起,十分麻煩。

根據情況,也可以自己設計連結串列的其它擴充套件。但是一般不會在邊上附加資料,因為連結串列的點和邊基本上是一一對應的(除了第一個或者最後一個節點,但是也不會產生特殊情況)。不過有一個特例是如果連結串列支援在連結串列的一段中把前和後指標反向,反向標記加在邊上可能會更方便。

其中儲存資料元素資訊的域稱作資料域(設域名為data),儲存直接後繼儲存位置的域稱為指標域(設域名為next)。指標域中儲存的資訊又稱做指標或鏈。

由分別表示,,…,的n 個結點依次相鏈構成的連結串列,稱為線性表的鏈式儲存表示,由於此類連結串列的每個結點中只包含一個指標域,故又稱單連結串列或線性連結串列。

2樓:

迴圈聯表示連結串列形成一個環,即最後一個節點指向頭結點,這樣就形成一個環;分為單迴圈連結串列和雙迴圈連結串列;

雙向連結串列就是每個節點有2個子節點,一個指向它的前驅,一個指向它的後繼;一般都是雙迴圈連結串列

c++ 單向連結串列和雙向連結串列有什麼區別?各自有什麼優缺點?

3樓:匿名使用者

一、指代不同

1、雙向連結串列:也叫雙連結串列,是連結串列的一種,每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅

二、優點不同

1、雙向連結串列:從雙向連結串列中的任意一個結點開始,都可以很方便地訪問前驅結點和後繼結點。

2、單向連結串列:單個結點建立非常方便,普通的線性記憶體通常在建立的時候就需要設定資料的大小,結點的訪問方便,可以通過迴圈或者遞迴的方法訪問到任意資料。

三、缺點不同

1、雙向連結串列:增加刪除節點複雜,需要多分配一個指標儲存空間。

2、單向連結串列:結點的刪除非常方便,不需要像線性結構那樣移動剩下的資料,但是平均的訪問效率低於線性表。

4樓:大野瘦子

區別:一、意思不同

雙向連結串列是每個節點有2個連結,一個是指向前一個節點(當此連結為第一個連結時,指向的是空值或空列表),另一個則指向後一個節點(當此連結為最後一個連結時,指向的是空值或空列表),意思就是說雙向連結串列有2個指標,一個是指向前一個節點的指標,另一個則指向後一個節點的指標。

二、使用場景不同

單向連結串列適用於節點的增加刪除,雙向連結串列適用於需要雙向查詢節點值的情況。

三、用法不同

每個雙連結串列的節點要比單連結串列的節點多一個指標,而長度為n就需要 n*length(這個指標的length在32位系統中是4位元組,在64位系統中是8個位元組) 的空間,這在一些追求時間效率不高應用下並不適應,因為它佔用空間大於單連結串列所佔用的空間;這時設計者就會採用以時間換空間的做法,這時一種工程總體上的衡量。

優缺點:

一、單向連結串列

優點:單向連結串列增加刪除節點簡單。遍歷時候不會死迴圈。

缺點:只能從頭到尾遍歷。只能找到後繼,無法找到前驅,也就是隻能前進。

二、雙向連結串列

優點:可以找到前驅和後繼,可進可退。

缺點:增加刪除節點複雜,需要多分配一個指標儲存空間。

5樓:匿名使用者

一、結構不一樣

1、單向連結串列:每個節點由一個資料域和一個指標域構成。

2、雙向連結串列:每個節點由一個資料域和兩個指標域構成。

二、方向不一樣

三、適用不一樣

1、單向列表:適用於單向遍歷,儲存空間小的資料。

2、雙向列表:適用於雙向遍歷資料。

單向連結串列的優缺點:

1、優點:儲存空間小,增加刪除節點簡單。

2、缺點:只能從頭到尾遍歷。只能找到後繼節點,無法找到前驅節點。

雙向連結串列的優缺點:

1、優點:可以雙向遍歷,既能找到後繼節點,也能找到前驅節點。從任一節點都可以訪問到其他所有節點。

2、缺點:儲存空間大,增加刪除節點較複雜。

擴充套件資料連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。連結串列由一系列結點組成,每個結點包括兩個部分:一個是儲存資料元素的資料域,另一個是儲存下一個結點地址的指標域。

6樓:射手座的

單向連結串列和雙向連結串列的區別:

一、方向不同

二、使用情況不同

1、單向連結串列:適用於節點的增加刪除。

2、雙向連結串列:適用於需要雙向查詢節點值的情況。

三、讀取不同

1、單向連結串列:只能單向讀取。

2、雙向連結串列:可以雙方向讀取。

單向連結串列和雙向連結串列的區別可看下圖:

單向連結串列的優點和缺點:

2、優點:單向連結串列增加刪除節點簡單。遍歷時候不會死迴圈;

3、缺點:只能從頭到尾遍歷。只能找到後繼,無法找到前驅,也就是隻能前進。

4、適用於節點的增加刪除。

雙向連結串列的優點和缺點:

1、雙向連結串列:有兩個指標,一個指向前一個節點,一個後一個節點。

2、優點:可以找到前驅和後繼,可進可退;

3、缺點:增加刪除節點複雜,多需要分配一個指標儲存空間。

4、適用於需要雙向查詢節點值的情況。

單向連結串列(單連結串列)是連結串列的一種,其特點是連結串列的連結方向是單向的,對連結串列的訪問要通過順序讀取從頭部開始;連結串列是使用指標進行構造的列表;又稱為結點列表,因為連結串列是由一個個結點組裝起來的;其中每個結點都有指標成員變數指向列表中的下一個結點;

列表是由結點構成,head指標指向第一個成為表頭結點,而終止於最後一個指向null的指標。

雙向連結串列也叫雙連結串列,是連結串列的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向連結串列中的任意一個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈連結串列。

7樓:愛講真話的阿拉蕾

2、功能不同:單向連結串列只能next ,雙向連結串列可以return。

3、單雙向不同:單連結串列只能單向讀取,雙向連結串列可以通過prev()快速找到前一結點。

單向連結串列優缺點:

1、優點:單向連結串列增加刪除節點簡單。遍歷時候不會死迴圈;

2、缺點:只能從頭到尾遍歷。只能找到後繼,無法找到前驅,也就是隻能前進。

雙向連結串列優缺點:

1、優點:可以找到前驅和後繼,可進可退;

2、缺點:增加刪除節點複雜,多需要分配一個指標儲存空間。

8樓:你好嗎快樂嗎

單向連結串列:單向連結串列包含兩個域,一個是資訊域,一個是指標域。也就是單向連結串列的節點被分成兩部分,一部分是儲存或顯示關於節點的資訊,第二部分儲存下一個節點的地址,而最後一個節點則指向一個空值。

優點:單向連結串列增加刪除節點簡單。遍歷時候不會死迴圈。

(雙向也不會死迴圈,迴圈連結串列忘了進行控制的話很容易進入死迴圈);缺點:只能從頭到尾遍歷。只能找到後繼,無法找到前驅,也就是隻能前進。

雙向連結串列:每個節點有2個連結,一個是指向前一個節點(當此連結為第一個連結時,指向的是空值或空列表),另一個則指向後一個節點(當此連結為最後一個連結時,指向的是空值或空列表)。意思就是說雙向連結串列有2個指標,一個是指向前一個節點的指標,另一個則指向後一個節點的指標。

優點:可以找到前驅和後繼,可進可退;缺點:增加刪除節點複雜。

9樓:人才

單向連結串列:

優點:單向連結串列增加刪除節點簡單。遍歷時候不會死迴圈。(雙向也不會死迴圈,迴圈連結串列忘了進行控制的話很容易進入死迴圈)

缺點:只能從頭到尾遍歷。只能找到後繼,無法找到前驅,也就是隻能前進。

雙向連結串列:

優點:可以找到前驅和後繼,可進可退。

缺點:增加刪除節點複雜(其實就複雜一點點)一般應用中單向連結串列或迴圈連結串列居多,雙向連結串列不常用。當然特殊條件下雙向連結串列很方便。尤其是需要查詢到某個節點後再查其前驅的工作中。

什麼是環形連結串列?是雙向連結串列嗎?還是迴圈連結串列?

10樓:匿名使用者

環形連結串列 連一圈,頭尾相接,不一定是雙向連結串列,可以單向連結串列;

估計跟「迴圈連結串列」術語差不多,

用途是:做「佇列」用。

11樓:

環形連結串列可以不是雙向連結串列,也可以不是首尾相鏈,看看 o 和 6 這個兩符號,很形像吧,跟據你的需要,想o型就首尾相連,想6型,就尾部連到中間某個結點上

12樓:

尾首相接,就是環形連結串列啦

13樓:匿名使用者

連結串列一般式用結構體作為節點,最近但的連結串列資訊包含的是下個節點的地址。

表頭會一般儲存在head變數中。直到最後一個的下一節點的地址資訊為null。p->next==null

而環形連結串列是具備普通連結串列的特徵,此外,最後個節點的下個地址資訊是第一個節點的地址。即為header中的地址資訊。判斷迴圈一週的方式是p->next==head->next

雙向連結串列和普通連結串列的區別在於每個節點會有兩個地址資訊,一個是上個節點的地址,一個是下個節點的地址。

迴圈連結串列的最簡單形式是環形連結串列,而將表中結點鏈在多個環上就叫多重迴圈連結串列。

單連結串列 迴圈連結串列 雙向連結串列的相同點還有不同點?

14樓:殤詰丶

樓上說得對,細說的話。是 單連結串列:連結串列有頭指標和結束指標。

迴圈連結串列:有頭指標,最後的元素的指標是指向第一個元素的,即沒有結束指標。 雙向連結串列:

一個元素有兩個指標,一個是指向前一個元素,另一個是指向後一個元素。

15樓:手機使用者

首先三者都是連結串列 1、迴圈連結串列是在單連結串列的基礎上,把尾指標指到連結串列的頭,形成一個正向環。 2、雙向連結串列是在迴圈連結串列的基本上,增加當前節點前節點的指標,形成正逆向兩個環;

帶頭結點的雙迴圈連結串列L為空的條件是

1 帶頭節點的雙向迴圈連結串列l為空的條件是 l l next。2 雙向連結串列也叫雙連結串列,是連結串列的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向連結串列中的任意一個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈連結串列。3 迴圈連...

現實和理想區別是什麼,理想和現實的區別是什麼

理想與現實,其實說白了,也就是精神和現實的分界!理想與現實能夠同時兼而顧得的恐怕是少之又少?只有現實而沒有理想,就彷彿一個人只有軀殼,而丟失了那一顆 心 只有 理想 而不顧 現實 那也是一種永遠地 幼稚 甚至連 生存 都成了問題?那種結果,要麼成大器?要麼毀滅?就仿如梵高,為了繪畫,最終餓死街頭,但...

全棉和滌棉的區別是什么,全棉和滌棉的區別是什麼

回答分析,在我們的生活中,柔軟製品無處不在。我們的衣服,我們的被褥,我們的窗簾,都是柔軟製品。但是這些柔軟製品的材料確實不太一樣的。滌棉 滌棉既保持了滌綸纖維強度高 彈性恢復性好的特性,又具備棉纖維的吸溼性強的特徵。滌棉容易染色 而且洗後不用燙,很快就幹了。滌棉對油汙的親和力很強,容易吸附油汙,而且...