En dendroid är ett träd som har följande egenskaper:
* Den är ansluten.
* Den är acyklisk.
* Den har en enda rotnod.
* Alla dess icke-rotnoder har exakt en överordnad nod.
Dendroider används ofta för att representera hierarkiska datastrukturer, såsom filsystem eller organisatoriska hierarkier. De används också i datorgrafik för att representera objekt med förgrenade strukturer, såsom träd eller växter.
Dendroider kan representeras med en mängd olika datastrukturer, inklusive arrayer, länkade listor och träd. Den vanligaste representationen är närliggande lista, som är en uppsättning av listor, där varje lista innehåller indexen för undernoderna för motsvarande överordnade nod.
För att hitta en väg från en nod till dess rot i en dendroid kan man helt enkelt korsa trädet, följa föräldrapekarna, tills rotnoden nås. Längden på banan är lika med antalet kanter i banan, vilket är lika med antalet förfäder till noden.
Höjden på en dendroid är längden på den längsta vägen från en nod till dess rot. Diametern på en dendroid är den maximala höjden av dess underträd.
Dendroider kan användas för att lösa en mängd olika problem inom datavetenskap, inklusive:
* Hitta den lägsta gemensamma förfadern av två noder.
* Hitta vägen från en nod till dess rot.
* Hitta höjden och diametern på ett träd.
* Generera ett slumpmässigt dendrogram.
Dendroider är en mångsidig och effektiv datastruktur som kan användas för att representera en mängd olika hierarkiska datastrukturer. De används ofta inom datavetenskap och har en rik matematisk teori.