Stromy - definice a základní vlastnosti

  • Grafy připomínající vzhledem stromy / keře
graph BT;
A[ ] --- B[ ];
B --- C[ ];
B --- D[ ];
C --- E[ ];
E --- F[ ];
D --- G[ ];
D --- H[ ];
D --- CH[ ];
CH --- I[ ];
CH --- J[ ];

classDef default fill:green,stroke-width:3px;
graph TD;
A[ ] --- B[ ];
A --- C[ ];
B --- D[ ];
B --- E[ ];
D --- F[ ];
D --- G[ ];
E --- H[ ];
E --- CH[ ];
C --- I[ ];
C --- J[ ];
I --- K[ ];
I --- L[ ];
J --- M[ ];
J --- N[ ];

classDef default fill:green,stroke-width:3px;
  • Strom je neorientovaný graf bez kružnic

  • Vrchol se stupněm se nazývá koncový

  • Koncový vrchol stromu se nazývá list

  • Odebereme-li ze stromu list a hranu, která do něj vede, vznikne opět strom

  • V každém stromu s alespoň dvěma vrcholy existují alespoň dva listy

  • Pro graf a jeho koncový vrchol jsou následující tvrzení ekvivalentní

    • je strom
    • je strom
  • Pro neorientovaný graf jsou následující tvrzení ekvivalentní

    • je strom
    • Mezi každými dvěma vrcholy grafu existuje právě jedna cesta
    • je souvislý, ale vynecháním libovolné hrany vznikne nesouvislý
    • neobsahuje kružnice, ale přidáním jakékoli hrany vznikne graf s kružnicí
    • neobsahuje kružnice a
    • je souvislý a

Kořenové stromy

  • Kořenový strom je dvojice , kde je strom a je vrchol, tzv. kořen

  • Kořenový strom je tedy strom, ve kterém je vybrán jeden kořen. Může to být kterýkoliv vrchol. Bývá to ale vrchol, který je v nějakém smyslu na vrcholu hierarchie objektů, která je stromem reprezentována.

  • Nechť je kořenový strom

    • Vrchol se nazývá potomek vrcholu ( se nazývá předek vrcholu ), právě když cesta z kořene do má tvar
    • Vrchol se nazývá následovník (přímý potomek) vrcholu ( se nazývá předchůdce (rodič) vrcholu ), právě když cesta z kořene do má tvar
    • Vrchol se nazývá list kořenového stromu, právě když nemá žádného následovníka (jinak se nazývá vnitřní vrchol)
    • Hloubka (úroveň) vrcholu je délka cesty od kořene do
    • Výška vrcholu je délka nejdelší cesty od do některého z listů
    • Výška (hloubka) stromu je výška jeho kořene
    • Kořenový strom s hloubkou se nazývá vyvážený, pokud má každý jeho list úroveň nebo
  • Kořenový strom se nazývá -ární, právě když každý jeho vrchol má nejvýše potomků

  • -ární kořenový strom výšky se nazývá zaplněný, pokud splňuje následující podmínky:

    • každý vrchol s výjimkou vrcholů s hloubkou nebo následovníků
    • každý list má hloubku nebo
  • Kořenový strom se nazývá uspořádaný, je-li ke každému vrcholu, který není listem, zadáno lineární uspořádání jeho potomků

Binární vyhledávací stromy

  • Binární vyhledávací stromy slouží k ukládání a vyhledávání dat
  • Jsou to binární kořenové stromy s dodatečnou informací, která splňuje jistá omezení usnadňující vyhledávání
  • Dodatečná informace: Vrcholy binárního vyhledávacího stromu jsou ohodnoceny číselnými hodnotami; budeme předpokládat, že ohodnocení je funkce
  • Omezení:
    • Je-li levým následníkem vrcholu nebo potomkem tohoto následníka, pak
    • Je-li pravým následníkem vrcholu nebo potomkem tohoto následníka, pak
graph TD
classDef hidden stroke:transparent,fill:transparent,color:transparent;
8 --- 2;
8 --- 15;
2 --- -3;
2 --- 4;
-3 --- -5;
-3 --- 0;
4 --- X;
4 --- 7;
15 --- 14;
15 --- 20;
14 --- 11;
14 --- XX;
20 --- 16;
20 --- 21;

class X,XX hidden;
linkStyle 6 stroke:transparent; linkStyle 11 stroke:transparent;
graph TD
classDef hidden stroke:transparent,fill:transparent,color:transparent;
5 --- X;
5 --- 6[4];
6 --- XX;
6 --- 10[2];
10 --- XXX;
10 --- 12[3];

class X,XX,XXX hidden;
linkStyle 0 stroke:transparent; linkStyle 2 stroke:transparent;
linkStyle 4 stroke:transparent;
  • V zaplněném binárního kořenového stromu s vrcholy a listy, který má výšku platí:

  • V libovolném binárním kořenovém stromu s vrcholy a listy, který má výšku , platí:

Předchozí: Minimální kostra grafu, Kruskalův algoritmus Následující: Matice, operace s maticemi, hodnost, determinant Celý okruh: 1. Teoretické základy informačních technologií