System.Collections.Stack hakkında biliyorum. PushFront() & PushBack() destekleyen bir sınıf arıyorum..net'de çift taraflı bir yığın sınıfı var mı?
cevap
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.
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.
Bu siteyi askjonskeet.com olarak değiştirmeyi düşünmeliyiz. –
@SethReno: Bu zaten alınmış ... deneyin :) –
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.
Aradığın şey bir deque. Bir örnek: http://www.codeproject.com/KB/recipes/deque.aspx
- 1. three.js çift taraflı nesneyi nasıl yapılır
- 2. "ApplicativeIO" sınıfı var mı?
- 3. java.awt.Polygon gibi bir codenameone sınıfı var mı?
- 4. C# kümesinde yığın tabanlı diziler var mı?
- 5. CPU veya RAM'de yığın var mı?
- 6. Sıra ve yığın koleksiyonları var mı?
- 7. Android'den eksiksiz bir yığın izi görmenin bir yolu var mı?
- 8. .NET'te çok taraflı şifreleme?
- 9. Blackberry'de bir Dize biçiminde yığın özelliğinin yığın izini almanın bir yolu var mı?
- 10. Raylar/Yakut: Yığın izlerini kısaltmanın herhangi bir yolu var mı?
- 11. İstif üzerine yığın izi yazdırmanın bir yolu var mı?
- 12. Yığın görünümündeki fotoğrafların sırasını değiştirmenin herhangi bir yolu var mı?
- 13. Öğenin iki sınıfı var mı kontrol edin
- 14. Java: Nesne sınıfı bir yapıcı var?
- 15. Çift başarısızlığa mı atılıyor?
- 16. C++ 'da standart bir tarih/zaman sınıfı var mı?
- 17. Uzun CSS sınıfı isimlerinin performans üzerinde bir etkisi var mı?
- 18. Operatör türlerini temsil eden bir .NET sınıfı var mı?
- 19. PHP'de iyi bir HTML-tablo-jeneratör sınıfı var mı?
- 20. Ruby'de herhangi bir sayı biçimlendirme sınıfı var mı?
- 21. Java'da bir dizeden [] bir çift ayıkladınız mı?
- 22. İki taraflı hareketli ortalama?
- 23. Bağlı bir iki taraflı grafik nasıl tanımlanır?
- 24. Öbek oluştururken benzersiz bir yığın mı?
- 25. Yığın package.yaml dosyasında ne var?
- 26. Yığın bir uygulama detayı mı, değil mi?
- 27. F # dan C# örtülü operatörleri kullanmak için zaten var mı? Ben örtük dönüşümle birlikte bir C# sınıfı, çift şöyle varsa
- 28. HTML öznitelik değerleri içinde tek/çift tırnaklara izin var mı?
- 29. Çift eğik çizgi dosya yolları için yerleşik bir python yöntemi var mı?
- 30. Flex'te çift veya float veri türü var mı?
Eğer var olsaydım koleksiyon adlarında bulacağınızdan eminim. – ChaosPandion
Bir * Yığın * dediğiniz, geri itmeyi destekliyorsa, bir değil. –