Bir ağaç almak için en verimli algoritma arıyorum (kenarların listesi olarak saklanır; VEYA üst düğümden alt düğümler listesine eşlemeler listesi olarak); HER düğüm için, ondan gelen tüm düğümlerin bir listesini (yaprak seviyesi ve yaprak olmayan seviye) üretir.
Uygulama ölçeğe bağlı olarak, tekrarlama yerine döngüler aracılığıyla yapılmalıdır; ve ideal olarak O (N) olmalıdır.
Bu SO sorusu , bir ağaçtaki ONE düğümü için cevabı bulmak için makul derecede açık bir standart çözümü kapsar. Fakat açıkçası, bu algoritmayı her ağaç düğümünde tekrarlamak oldukça verimsizdir (başımın üstünden O (NlogN) ila O (N ^ 2)).
Ağaç kökü bilinir. Ağaç kesinlikle keyfi bir şekle sahiptir (örneğin N-nary değil, herhangi bir şekilde, şekil veya formda dengelenmemiş, tekdüze derinlik değil) - bazı düğümlerin 1-2 çocuğu vardır, bazılarının 30K çocuğu vardır.
Pratik bir seviyede (algoritmayı etkilememesine rağmen) ağacın ~ 100K-200K düğümleri vardır.