2011-11-10 11 views

cevap

11

Neden sadece LinkedList<T> kullanmayın/sarmayın? AddFirst ve AddLast yöntemlerine sahiptir. AddBefore vb. Yöntemlerini gizlemek için sarabilirsiniz.

Bunun için genel terim deque (çift bitişli kuyruk anlamına gelir). Bir sebepten dolayı bir LinkedList<T> yeterli olmazsa (bu olmalıdır!), Eric Lippert'in bir immutable deque uygulanmasına bakabilirsiniz.

9

Normalde deque olarak adlandırılan bir şey istediğiniz gibi geliyor. .NET'te bildiğim en yakın değer LinkedList<T>. Dairesel bir tampondan (gerektiğinde genişleterek) oluşturulmuş bir yapı olduğuna inanmıyorum, bu muhtemelen onu sıfırdan oluşturmak isteyeceğiniz yoldur. Tabii ki, bunu kendiniz uygulayabilirsiniz - ama çok iyi bir sebep olmasaydı muhtemelen LinkedList<T> kullanırdım. Eric Lippert ayrıca an immutable implementation you could look at (blog post covering it) sahiptir, ancak belli ki bir dizi test yazmak isteyebilirsiniz ... ve 'u değiştirilemez.

+0

Bu siteyi askjonskeet.com olarak değiştirmeyi düşünmeliyiz. –

+1

@SethReno: Bu zaten alınmış ... deneyin :) –

0

Neden bir LinkedList<T> kullanmıyorsunuz? Başlangıç, bitiş ve aralarında herhangi bir yere eklenmesine izin verir. Bazı LinkedList<T> yöntemlerini ifşa etmek istemezseniz, her zaman sarın ve yalnızca açığa vurmak istediğiniz yöntemleri gösterebilirsiniz.

İlgili konular