Ben aşağıdaki alanlarıPython'da bir ağacı hareket ettirmenin en etkili yolu nedir?
değeri
ebeveyn ve bu bir dizin ağacına benzer bir ağaç yapısını tanımlar sahip nesnelerin bir listesi var varsayarsak.
Listeyi ön siparişte taşımak istiyorum. En verimli yol nedir?
Normalde, diğer (daha fazla zorlayıcı) dillerde, ebeveynleri olmayanları bulmak, sonra her biri için, şu anda bakmakta olduğum ve benzerleri olan her nesne için tekrar yineleme, değerleri yinelemek, ama bunu Python'da yapmanın daha akıllıca bir yolu var mı?
Sanırım, özel kasa olmadan “obj.parent yok” seçeneğinde daha hoş olurdu. Daha az kod, daha hızlı ve aynı zamanda bir ormandan ziyade bir ormanı idare edebilir ('çocuklar [Yok]' tüm ağaç köklerinin listesidir). – 6502
Mükemmel! Sana deðiþebilmesi eklersiniz: \t \t def ön sipariş vermek (kök, çocuk, derinlik): \t \t verim [root.value, derinlik] \t \t çocuk için children.get içinde (kök, []) : preorderda değere (çocuk, çocuklar, derinlik + 1) için \t \t : Ön sipariş sonucu değil, aynı zamanda ne kadar derin ev sadece görebiliyordu \t \t verim değeri \t \t ve bu şekilde ery düğümü. İlk aramanın ön sipariş olması gerektiğini unutmayın (root, children, 0) Çok teşekkürler! ** Düzenle **: Urgh. Kod yanıtlarken gerçekten dağınık görünüyor. – Bruno