單連結串列 單迴圈連結串列和雙向連結串列

2025-03-12 12:30:03 字數 1394 閱讀 5823

1樓:匿名使用者

1.單連結串列不行,因為單連結串列沒有辦法得到其前驅;

2. 單迴圈連結串列可以,假設連結串列的元素大於等於2:

struct node

node * next;

int data;

迴圈連結串列 node * list;

node *pnode = p;

while(pnode->next != p)pnode = pnode->next;

找到其前驅了。

int tmp = pnode->data;

pnode->data = p->data;

p->data->tmp;

3.雙向連結串列可以,假設連結串列的元素大於等於2,且p不為連結串列頭。

struct node

node * next;

node * pre;

int data;

雙向連結串列list;

node *pnode = p;

if(p->pre != null)

int tmp = p->data;

p->data = p->pre->data;

p->pre->data = tmp;

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

2樓:惠企百科

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

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

2、判斷鏈域值不同。

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

3、訪問方式:

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

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

4、操作:迴圈連結串列:只能在當前結點後插入和刪除。

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

5、儲存:迴圈連結串列儲存密度大於雙連結串列。

雙向迴圈連結串列的主要優點?

3樓:鯨志願

雙向連結串列。的每個資料結點中都有兩個指標,褲蔽分別指向直接後繼和直接前驅。所以,從雙向連結串列中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。

一般我們都構造雙向迴圈連結串列。

單連結串列的缺點是隻能往前,不能後退,雖然有迴圈單連結串列,但後退的成本還是很高的,需要跑一圈。在這個時候呢,雙向連結串列就應運而生了,再加上迴圈即雙向迴圈連結串列就更加不錯了。所謂雙向連結串列只不過是新增了乙個指向前驅結點的指標,雙向迴圈連結串列是將最後乙個結點的後繼指標指向頭結廳鏈點。

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

1 最後一個結點指標指向不同 在建立一個迴圈連結串列時,必須使其最後一個結點的指標指向表頭結點,而不是像雙向連結串列那樣置為null。此種情況還用於在最後一個結點後插入一個新的結點。2 判斷鏈域值不同 在判斷是否到表尾時,是判斷該結點鏈域的值是否是表頭結點,當鏈域值等於表頭指標時,說明已到表尾。而非...

單連結串列中如何用尾插法java

單連結串列也稱為線性連結串列或 單向連結串列,它是線性表的連結儲存表示。單連結串列的結構第一個結點 亦稱為首元結點 的地址可以通過連結串列的頭指標first找到,其他結點的地址則在前驅結點的link域中,連結串列的最後一個結點沒有後繼,在結點的link域中放一個空指標null,null在中被定義為數...

資料結構(C語言版),單連結串列問題

d正確q next p next的意思 讓q中指向下一個節點的指標指向p的下一個節點 此題中p還沒有插入佇列,所以p的下一個節點不確定,所以這個語句錯誤。p next q next意思 讓p中指向下一個節點的指標指向q的下一個節點 此題中,這條語句執行完後再讓q 的下一個節點指向p就達到目的可能說的...