Halda je typ specializované datové struktury používané v počítačovém programování, která je založena na principu prioritní fronty. Haldy se obvykle používají k ukládání kolekce dat do paměti. Halda je stromová datová struktura, ve které je každý nadřazený uzel větší nebo roven svým potomkům. Haldy se běžně používají při návrhu operačního systému a algoritmu a jsou obvykle implementovány jako binární strom.
Haldy se skládají z hierarchické stromové struktury, která je obvykle implementována jako pole. Každý uzel ve stromu má přiřazenou prioritu a kořenový uzel stromu je uzel s nejvyšší prioritou. Je možné, aby byla halda částečně setříděna, přičemž prvky s nižší prioritou byly z důvodu pohodlí a výkonu vynechány.
Hromady se používají k mnoha účelům, včetně třídicích algoritmů, jako je heapsort, prioritní fronty, výběrové algoritmy a další použití, která vyžadují efektivní přístup k datům. Haldy lze použít k uložení a rychlému načtení maximálního nebo minimálního prvku v datové sadě. Kromě toho mohou být haldy použity jako datová struktura pro různé algoritmy, jako je Dijkstrův algoritmus a Primův algoritmus, které se používají k řešení problému nejkratší cesty.
Hromady mohou být implementovány v několika různých programovacích jazycích. Mezi běžně používané jazyky pro implementaci hald patří C nebo C++, Java, Python a JavaScript. Implementace datové struktury haldy se může lišit jazyk od jazyka, nicméně základní principy struktury zůstávají stejné.
Celkově je struktura haldy výkonná datová struktura pro aplikace počítačového programování a lze ji použít v mnoha algoritmech pro maximální efektivitu. Umožňuje rychlý přístup k maximálním i minimálním prvkům podle potřeby a lze jej efektivně použít jako prioritní frontu.