Junior — Middle
Jaké jsou klíčové rozdíly mezi binárním stromem a vyváženým stromem v kontextu datových struktur?
sobes.tech AI
Odpověď od AI
Klíčové rozdíly mezi binárním stromem a vyváženým stromem:
- Binární strom: datová struktura, kde každý uzel má nejvýše dva potomky (levý a pravý).
- Vyvážený strom: speciální typ binárního stromu, který udržuje rovnováhu, aby zajišťoval přibližně stejné výšky podstromů. To umožňuje efektivní provádění operací hledání, vkládání a odstraňování.
Vyvážení je nutné, aby se předešlo degenerovaným případům, kdy strom připomíná seznam a operace jsou pomalé (O(n)).
Příklady vyvážených stromů:
- AVL strom
- Červeně-černý strom
Příklad v Go (zjednodušený):
// Uzel binárního stromu
type Node struct {
Value int
Left *Node
Right *Node
}
// V vyváženém stromu jsou po vložení prováděny rotace,
// aby se udržela rovnováha (zde nezobrazeno).
Tedy, vyvážený strom je binární strom s dodatečnými vlastnostmi pro udržení efektivity.