未使用陣列儲存節點,索引處理較繁瑣(用陣列則有容量限制),歡迎高手提供更好作法。
class Program {
static void Main(string[] args) {
CircleList<Person> list = new CircleList<Person>();
for (int i = 0; i < 17; i++) list.AddLast(new Person(i + 1));
DoubleLinkNode<Person> current = list.First;
int k = 0;
while (list.Count > 1) {
k++;
Console.WriteLine(string.Format("{0}:{1}", current.Value.Id, k));
if (k % 3 == 0) list.Remove(current);
current = current.Next;
}
Console.WriteLine(string.Format("Last Person:{0}", current.Value.Id));
Console.Read();
}
}
public class Person { public Person(int id) { this.Id = id; } public int Id { get; set; } }
執行結果圖: