Genişlik Derinlik Vs İlk Önce
Ağaç/Grafik geçiş yapma, Genişlik ve Derinlik İlk önce arasındaki fark nedir? Herhangi bir kodlama veya yarı örnekler harika olurdu.
CEVAP
Bu iki anlamda da bir ağaca yürüyen iki farklı şekilde ayırt.
Muhtemelen en kolay yoldur. Düşünün ağaç:
A
/ \
B C
/ / \
D E F
Birderinlikilk geçişi bu sırada düğümleri ziyaret eder
A, B, D, C, E, F
Her tarafa dikkat edinaşağıdevam etmeden önce bir bacak.
Birgenişlikilk geçişi bu sırada düğüm ziyaret edin
A, B, C, D, E, F
Burada her şekilde çalışıyoruzkarşısındaaşağı gitmeden önce her düzeyde.
(Geçişi siparişler biraz belirsizlik var unutmayın, ve "ağaç. her seviyede okuma düzeni korumak için hile yaptım. Her iki durumda da ya önce C sonra B ... ... ve aynı şekilde F. ya da Bu olabilir önce ve sonra E alabilirim ya, sana bağlı uygulama önemli...) olabilir
Geçişi her iki tür yarı kod ile elde edilebilir:
Store the root node in Container
While (there are nodes in Container)
N = Get the "next" node from Container
Store all the children of N in Container
Do some work on N
İki geçişi emirleri arasındaki fark Container
seçimi yatıyor.
- İçinderinlik ilkbir yığın kullanın. (Özyinelemeli uygulaması, çağrı yığını...) kullanır
- İçingenişlik önceliklibir sıra kullanın.
Özyinelemeli uygulama gibi görünüyor
ProcessNode(Node)
Work on the payload Node
Foreach child of Node
ProcessNode(child)
/* Alternate time to work on the payload Node (see below) */
Özyineleme için sonuna kadar garanti yani çocukları vardır, bir düğüm ulaştığınızda biter sonlu, döngüsel grafikler.
Bu noktada, hala biraz hile yaptım. Küçük bir zeka ile deişle ilgilidüğümler bu sırada:
D, B, E, F, C, A
ağaca yürüyen ben dönene kadar her düğümde işi yapmak istemiyorum nereye derinlik-önce bir varyasyonu olan. Ancakziyaret ettiyolda üstü bezleri çocuklarını bulmak için aşağı.
Bu geçişi özyinelemeli uygulaması oldukça doğal ("Başka bir zaman" ilk " yerine yukarıdaki satırı "İş" çizgi), ve değil . kullanınçokeğer bir açık yığın kullanırsanız zor, ama bir egzersiz olarak bırakıyorum.
Tam genişlik twitter bootstrap ile düz...
İframe genişlik yükseklik içeriği ile ...
Neden Firefox ve Opera max-genişlik gö...
Ayarlama üst Android İmageView's ...
Nasıl ekran genişlik ve yükseklik için...