迴圈鍊錶(Circual Linked List

2021-10-02 20:08:42 字數 1770 閱讀 5572

迴圈鍊錶在單鏈表的基礎上做了一些修改,序列中最後乙個節點的指標域指向序列的第乙個節點,構成乙個閉環。這允許在迴圈遍歷的過程中回到節點的第乙個節點。原先單鏈表的最後乙個節點的指標域為空,在迴圈鍊錶中不存在空指標域。

迴圈鍊錶中的任意乙個節點都可以作為起點,可以使用這個節點遍歷整個序列。

struct node

*head=

null

;

鍊錶的一些常用運算

鍊錶中一些常用運算包括新增、刪除、更新

插入節點到鍊錶末尾

建立新的節點,遍歷到序列的末尾,插入新節點

插入過程

void

insertatend

(int value)

else

temp->next=newnode;

newnode->next=head;

}printf

("節點插入成功");

}

插入節點到鍊錶頭部

新的節點通過遍歷插入到序列的頭部

插入過程

void

insertatbeginning

(int value)

else

printf

("\n 節點插入成功");

}

插入節點到序列的任意位置

通過遍歷序列的形式的將新的節點插入到序列的指定位置

插入過程

void

insertafter

(int value,

int location)

else

else

} newnode -> next = temp -> next;

temp -> next = newnode;

printf

("\n插入節點成功");

}}

從序列尾部刪除節點

通過遍歷序列的形式,從序列中移除指定節點

移除過程

void

deleteend()

else

temp2 -> next = head;

free

(temp1);}

printf

("\n刪除節點成功");

}}

從序列頭部刪除指定節點

刪除過程

void

deletebeginning()

else

printf

("\n刪除成功");

}}

從序列中刪除指定元素

通過遍歷序列,從序列中找到目標元素,刪除

刪除過程

void

deletespecific

(int delvalue)

else}if

(temp1 -> next == head)

else

else

else

free

(temp1);}

}printf

("\n刪除成功");

迴圈鍊錶,雙向鍊錶

迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...

鍊錶之迴圈鍊錶

單向鍊錶 鍊錶之單向鍊錶 迴圈鍊錶是單向鍊錶的變化形式。單向鍊錶的尾部的指標域是空的,而迴圈鍊錶的尾部指標是指向鍊錶的頭結點的,其結構如圖一所示。圖 一循 環鏈表結 構圖一 迴圈鍊錶結構 圖一迴圈鍊錶 結構從上面結構可以看出,迴圈鍊錶的節點形成了乙個圈。在進行遍歷時,可以從任意節點開始。如果記錄了尾...

迴圈鍊錶企業鍊錶

一 特點 讓鍊錶的最後乙個結點的next指標指向頭結點。初始化小節點時直接讓next指標指向鍊錶的頭結點。二 include include include 小結點 typedef struct listnode listnode 鍊錶結點 typedef struct circularlist c...