天天看點

循環連結清單

單向循環連結清單:

空表:l->next = l。

與單連結清單的聯系:判斷表尾的方法不同:單連結清單用p==null;循環連結清單用p==l。

雙向循環連結清單:一個結點包含指向後繼(next) 和指向前驅(prior) 兩個指針,兩個方向又分别構成循環連結清單。

雙向循環連結清單的插入和删除:

1.p之後插入s

s->next = p->next;

p->next = s;

s->prior = p;

s->next->prior = s;

2.p之前插入s

s->prior= p->prior;

p->prior = s;

s->next = p;

s->prior->next = s;

3.删除p之後繼s

s = p->next;

p->next = s->next;

p->next->prior = p;

4.删除p

p->prior->next= p->next;

p->next->prior= p->prior;

一道題目:循環連結清單解決josephus環問題

題目:n個人圍成一圈,從第一個開始順序報數1,2,3,凡是報到3 者退出圈子,最後剩下的就是勝利者。

參考代碼:

循環連結清單
循環連結清單

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2622359.html

繼續閱讀