Ağaç derinliği ve yüksekliği arasındaki fark nedir?


262

Bu algoritma teorisinden basit bir soru.
Aralarındaki fark, bir durumda kök ve beton düğüm arasındaki en kısa yoldaki düğüm sayısını ve diğer kenar sayısını saymanızdır.
Hangisi hangisi?


78
İpucu: terminolojiler arasındaki karışıklığı önlemek için: 1. Yükseklik: Bir kişinin yüksekliğini ölçtüğünüzü hayal edin, ayak başından başa doğru (yapraktan köke) yapıyoruz. 2. Derinlik: Bir denizin derinliğini ölçtüğünüzü hayal edin, bunu dünya yüzeyinden okyanus yatağına (kökten yapraka) yapıyoruz.
Yesh

@Yesh Bu harika bir benzetme.
Özel Karakter

1
@Yesh mükemmel benzetmesine eklemek için: ağacın ortasındaki bir iç düğüm için, derinlik kök düğümün altında kaç seviye olduğu ve yüksekliği en alt alt düğümünün üzerindeki seviyelerdir.
Thomas Nguyen

Yanıtlar:


664

Derinlik ve yüksekliğin bir düğümün özellikleri olduğunu öğrendim :

  • Derinliği bir düğümün ağacın kök düğümden düğüme kenarları sayısıdır.
    Bir kök düğümün derinliği 0 olacaktır.

  • Yüksekliği , bir düğümün kenarların sayısıdır uzun yol bir yaprak düğüme.
    Bir yaprak düğümünün yüksekliği 0 olur.

Bir ağacın özellikleri :

  • Yüksekliği bir ağacın kök düğümün yüksekliği, olur
    veya eş anlamlı olarak en derin düğümün derinliği.

  • Çapı (ya da genişliği, bir ağacın) sayısıdır düğümler herhangi iki yaprak düğümleri arasındaki en uzun yol üzerindedir. Aşağıdaki ağacın çapı 6 düğümdür.

Her düğümün yüksekliği ve derinliği olan bir ağaç


21
+1, buradan aynı içeriğe sahip teklif eklemek üzereydi: en.wikipedia.org/wiki/Tree_%28data_sttruc%29
Péter Török

2
yükseklik == maksimum derinlik anlamına gelir
roottraveller 22.06.2016

6
@rkm_Hodor: Evet, bir ağacın yüksekliği her zaman en derin düğümün derinliğine eşittir .
Daniel AA Pelsmaeker

1
Bir ağacın çapının kenarlar yerine düğümleri saydığını iddia ettiğiniz için lütfen bir kaynak gösterebilir misiniz? Bu , en uzun yolu isteyen bir grafiğin çapının olağan tanımıyla (ör. En.wikipedia.org/wiki/Distance_(graph_theory) genel olarak çelişir .
j_random_hacker

1
@j_random_hacker Bu bir tanım meselesi, sizin için en faydalı olanı seçin. Köşeler sayısından kenar sayısına ulaşmak için, sadece 1 çıkarın. Köşeler
Daniel AA Pelsmaeker

44

bir ağacın yüksekliği ve derinliği eşittir ...

ancak bir düğümün yüksekliği ve derinliği eşit değildir çünkü ...

yükseklik, verilen düğümden mümkün olan en derin yaprağa geçilerek hesaplanır.

derinlik kökten verilen düğüme geçişten hesaplanır .....


4
"yükseklik yapraktan verilen düğüme geçerek hesaplanır" doğru değildir, yaprak verilen düğümün tüm yaprakları arasında en derin olan yaprak olmalıdır.
mightyWOZ

14

Cormen ve ark. Algoritmalara Giriş (Ek B.5.3), bir T ağacındaki X düğümünün derinliği, T'den X'e kök düğümünden basit yolun (kenar sayısı) uzunluğu olarak tanımlanır. Y düğümünün yüksekliği Y'den bir yaprağa en uzun aşağı doğru basit yoldaki kenar sayısı . Bir ağacın yüksekliği kök düğümünün yüksekliği olarak tanımlanır.

Basit bir yolun, tekrar köşeleri olmayan bir yol olduğunu unutmayın.

Bir yüksekliği ağacının bir maksimum derinliği eşittir ağacın . Bir düğümün derinliği ve bir düğümün yüksekliği mutlaka eşit değildir. Cormen ve ark.'nın 3. baskısının Şekil B.6'sına bakınız. bu kavramların bir açıklaması için.

Bazen kenarlar yerine düğümleri (köşeleri) saymasını isteyen sorunlar gördüm, bu yüzden bir muayene veya iş görüşmesi sırasında düğümleri veya kenarları saymanız gerektiğinden emin değilseniz açıklama isteyin.


Düğümleri ve kenarları saymada herhangi bir fark var mı? Her ikisi de aynı sonucu verecek gibi görünüyor. Eğer Yanlışsam beni düzelt.
VINOTH ENERGETIC

@ jdhao kök derinliği nasıl 2 olabilir? 0 (kenarlar dikkate alınırsa) veya 1'dir (düğümler dikkate alınırsa).
neowulf33

@ neowulf33, evet, çok yanılıyorum. Kök düğümün derinliği 0 olmalıdır. İnsanları karıştırmamak için yorumumu sileceğim.
jdhao

2

Basit Yanıt:
Derinlik:
1. Ağaç : Kök düğümden ağacın yaprak düğümüne kadar kenar / yay sayısı Ağacın Derinliği olarak adlandırılır.
2. Düğüm : Kök düğümden o düğüme giden kenar / yay sayısı o düğümün Derinliği olarak adlandırılır.


2

Bu kavramı anlamanın bir başka yolu da şu şekildedir: Derinlik: Kök pozisyonunda yatay bir çizgi çizin ve bu çizgiyi toprak olarak ele alın. Kökün derinliği 0'dır ve tüm çocukları aşağı doğru büyür, böylece her düğüm seviyesi mevcut derinliğe + 1 sahiptir.

Yükseklik: Aynı yatay çizgi ancak bu kez zemin konumu, ağacın yaprağı olan ve yukarı doğru sayılan dış düğümlerdir.


2

Bu yazıyı yapmak istedim çünkü lisans öğrencisiyim ve daha çok OpenDSA ve diğer açık kaynak ders kitaplarını kullanıyoruz. Görünüşe göre en yüksek puan, yükseklik ve derinliğin öğretilme biçiminin bir nesilden diğerine değiştiği gibi görünüyor ve bunu gönderiyorum, böylece herkes bu tutarsızlığın artık var olduğunu ve umarım herhangi bir hataya neden olmayacağını biliyor programlar! Teşekkürler.

Gönderen OpenDSA Veri Yapıları ve Algos kitabında :

N ise 1 , n 2 , ..., n, k , n, öyle ki ağaç düğüm dizisidir i ana n i + 1 için 1 <= ı <k, daha sonra bu sekans, n bir yolu olarak adlandırılır 1 ila n k . Yolun uzunluğu k − 1'dir. R düğümünden M düğümünden bir yol varsa, R, M'nin atasıdır ve M, R'nin soyundan gelir. Bu nedenle, ağaçtaki tüm düğümler ağacın kökünün torunlarıdır, kök ise atasıdır. tüm düğümlerin. Ağaçtaki M düğümünün derinliği, ağacın kökünden M'ye giden yolun uzunluğudur. Bir ağacın yüksekliği, ağaçtaki en derin düğümün derinliğinden daha fazladır.Tüm d derinliği düğümleri ağaçta d seviyesindedir. Kök, 0 düzeyindeki tek düğümdür ve derinliği 0'dır.

Şekil 7.2.1

Şekil 7.2.1: İkili ağaç. A düğümü köktür. B ve C düğümleri A'nın çocuklarıdır. B ve D düğümleri birlikte bir alt ağaç oluşturur. B düğümünün iki çocuğu vardır: Sol çocuğu boş ağaç ve sağ çocuğu D'dir. A, C ve E düğümleri G'nin atalarıdır. D düğümleri D, E ve F ağacın seviye 2'sini oluşturur; A düğümü 0 seviyesindedir. A'dan C'ye E'den G'ye kadar olan kenarlar 3 uzunluğunda bir yol oluşturur. D, G, H ve I düğümleri yapraklardır. A, B, C, E ve F düğümleri dahili düğümlerdir. I derinliği 3'tür. Bu ağacın yüksekliği 4'tür.


Değeri ne olursa olsun, bu bağlantıdaki tanım şu şekilde değiştirildi: "Ağaçtaki M düğümünün derinliği, ağacın kökünden M'ye giden yolun uzunluğudur. ağaçtaki en derin düğüm. "
kaya3
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.