Ett binärt träd är en typ av datastruktur som används i datorprogrammering för att lagra, sortera och komma åt information. Binära träd är den enklaste sorten av träd, men är mycket användbara och lätta att implementera. En typisk implementering av ett binärt träd förlitar sig på en rotnod kopplad till en serie noder som utgör själva trädet med pekvariabler. Denna typ av träd har fått sitt namn från det faktum att ingen nod i trädet kan ha fler än två barn.
Träddatastrukturer finns i många varianter. De är uppbyggda av olika noder, som är organiserade i ett hierarkiskt mönster. En enda nod, roten, är åtkomstpunkten genom vilken hela dataträdet kan sökas eller på annat sätt manipuleras. Denna rotnod pekar på den översta noden i själva trädet.
Alla noder i ett träd, förutom den översta noden, kommer att ha en föräldernod som är placerad ovanför sig i trädets hierarki. Den kan också ha barnnoder, som finns under den. En given nod nås via de ovanför den i trädet och ger åtkomst till de under den.
Binära träddatastrukturer tillåter att varje nod inte har fler än två barn. En given nod kan alltså ha noll, en eller två barnnoder kopplade till sig. Vanliga binära träd tillåter noder med valfritt antal barn var som helst i trädet. De sätter inte heller några begränsningar för hur värdena som lagras i noder som utgör ett träd är ordnade.
Datastrukturer är mest användbara när de förbättrar hastigheten med vilken data kan nås av en dator, och modifierade versioner av binära träd används för att förbättra deras effektivitet. Ett binärt sökträd är ett där alla datavärden som finns på den vänstra nedåtgående grenen från en given nod har värden som är lika med eller mindre än värdet som är lagrat i den noden. Värden på höger sida av en nod i ett ordnat binärt träd måste i sin tur vara större än värdet i basnoden. Denna dataordning gör det möjligt att skriva en mycket effektivare sökalgoritm.
Formen på ett binärt träd är också viktigt för att bestämma effektiviteten hos en sökalgoritm. Den minst effektiva varianten av ett binärt träd är en där varje nod bara har ett enda barn. En dator kan behöva undersöka varje dataelement i hela trädet för att hitta en enskild information i den här konfigurationen. Det mest effektiva binära trädet, däremot, är ett där varje nod med undantag för de längst ner i trädet har två barn och där alla lövnoder, bottennoderna i trädet, är på samma avstånd från roten.