Junior — Middle
Aké sú kľúčové rozdiely medzi binárnym stromom a vyváženým stromom v kontexte dátových štruktúr?
sobes.tech AI
Odpoveď od AI
Kľúčové rozdiely medzi binárnym stromom a vyváženým stromom:
- Binarový strom: dátová štruktúra, kde každý uzol má najviac dvoch potomkov (ľavý a pravý).
- Vyvážený strom: špeciálny typ binárneho stromu, ktorý udržiava rovnováhu, aby zabezpečil približne rovnaké výšky podstromov. To umožňuje efektívne vykonávanie operácií vyhľadávania, vkladania a odstraňovania.
Udržiavanie rovnováhy je nevyhnutné, aby sa predišlo degenerovaným prípadom, keď strom pripomína zoznam a operácie sa stávajú pomalými (O(n)).
Príklady vyvážených stromov:
- AVL strom
- Červená-čierna strom
Príklad v Go (zjednodušený):
// Uzol binárneho stromu
type Node struct {
Value int
Left *Node
Right *Node
}
// V vyváženom strome sú po vložení vykonávané rotácie,
// aby sa udržala rovnováha (neukázané tu).
Teda, vyvážený strom je binárne strom s dodatočnými vlastnosťami na udržanie efektívnosti.