C語言鏈式儲存之迴圈鍊錶

2021-09-26 15:56:50 字數 865 閱讀 8088

目錄

1.什麼是迴圈鍊錶

2.建立迴圈鍊錶

3.合併迴圈鍊錶

4.列印鍊錶

5.主函式

迴圈鍊錶是以單鏈表為原型,單鏈表中頭結點和未結點是不能直接關聯的,現在迴圈鍊錶讓尾結點直接指向頭結點,形成乙個圈,實現單向迴圈。

要點:<1>建立乙個頭結點,後面依次新增結點和單鏈表相同;

<2>新增乙個尾指標,使該尾指標指向鍊錶的頭結點;

<3>使鍊錶的尾結點的next指標指向頭結點,形成迴圈;

//採用尾插法 

list clist()

return tail;

}

要點:<1>兩個鍊錶分別為p和q,使p的尾指標指向q的首結點(注意不是頭結點!!!!);

<2>使q的尾指標指向p的頭結點;

<3>釋放q的頭結點。

//列印迴圈鍊錶

int prlist(list p)

while((tail->data)!=(p->data));

return 0;

}//合併兩個迴圈鍊錶

//將其中乙個的頭結點釋放掉

list comlist(list p,list q)

//列印迴圈鍊錶

int prlist(list p)

while((tail->data)!=(p->data));

return 0;

}

int main()

鍊錶之鏈式儲存

優點 1 空間儲存方便,現用現申請 2 插入刪除,只針對單一資料,不需要移動大量資料 缺點 1 讀取,插入,刪除慢,需要從頭查詢,時間複雜度均為o n typedef struct nodenode intmain void getnode node l,int n,node tar if p i ...

鍊錶之鏈式儲存

優點 1 空間儲存方便,現用現申請 2 插入刪除,只針對單一資料,不需要移動大量資料 缺點 1 讀取,插入,刪除慢,需要從頭查詢,時間複雜度均為o n typedef struct nodenode intmain void getnode node l,int n,node tar if p i ...

線性表的鏈式儲存之迴圈鍊錶

迴圈鍊錶不同於單鏈表的是在迴圈鍊錶中最後乙個結點的指標不為null,而是指向頭結點,從而整個鍊錶形成乙個環。在迴圈單鏈表中,表尾結點 r的next域指向l,故表中沒有指標域為null的結點,因此,迴圈單鏈表的判空條件不是頭結點的指標是否為空,而是它是否等於頭結點。迴圈單鏈表的插入,刪除演算法與單鏈表...