11. Двоични дървета -- Определение Ацикличен насочен граф, в който всички върхове без 1 имат по 1 предшественик, а 1 връх (корен) няма предшественици. Единствен път до корена Ниво на върха - брой на върховете в пътя до корена Корен - ниво 0 Листа - върхове без наследници Поддърво определено от връх - върхът и всичките му наследници, техните наследници и т.н. Рекурсивна същност на дърветата като структури от данни -- Двоично дърво Брой на наследниците на върховете - 0, 1 или 2 Ляв и десен наследник Обхождане на структурата от данни двоично дърво: * ляв, корен, десен (смесено) * корен, ляв, десен (низходящо) * ляв, десен, корен (възходящо) -- Рекурсивно определение на двоично дърво Крайно множество от елементи (възли), което е или празно, или се състои от корен (възел), свързан с две непресичащи се двоични дървета (поддървета) - ляво и дясно поддърво. -- Реализация с масив -- Реализация с указатели struct Node { char ch; Node *left, *right; }; -- Аритметични изрази и двоични дървета Листата са имена на променливи и константи, другите възли са аритметични операции (a+b/c)*(d-e*f) -- Обхождане на двоично дърво - линейно нареждане на възлите на дървото 1) preorder (клд) - *+a/bc-d*ef 2) inorder (лкд) - a+b/c*d-e*f 3) postorder(лдк) - abc/+def*-*