МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
||
Щоб визначити ширину дерева достатньо здійснити рекурсивний рух вліво і вправо до кінця відносно вершини із підрахунком кількості кроків, а потім додати.PROCEDURE MOVE_RIGHT(p:bintree); BEGIN if p^.right<> nil then Begin k:=k+1; MOVE_RIGHT(p^.right) end; END; PROCEDURE MOVE_LEFT(p:bintree); BEGIN if p^.left<> nil then Begin k:=k+1; MOVE_LEFT(p^.left) end; END; В основній програмі це буде мати вигляд: n:=0; k:=0; MOVE_RIGHT(top); MOVE_LEFT(top); writeln('ширина :',n+k+1); Процедура визначення висоти бінарного дерева буде мати вигляд: PROCEDURE HIGHT(p:bintree;k:integer); BEGIN if p^.left<>nil then HIGHT(p^.left, k+1); if k>h then h:=k; if p^.right<>nil then HIGHT(p^.right,k+1) END; Для встановлення кількості висячих вершин використовують таку процедуру: PROCEDURE LUSTOK(p:bintree;var l:word); Begin if (p^.left=nil) and (p^.right=nil) then inc(l); if p^.left<>nil then LUSTOK(p^.left,l); if p^.right<>nil then LUSTOK(p^.right,l); end; Доповнення новим елементом проводиться так само як формування дерева. Складність видалення пов’язана із тим, що приходиться аналізувати декілька можливих ситуацій: А). Видалення висячої вершини найбільш проста. Вона передбачає встановлення у nil вказівника на елемент, що видаляється, для цього потрібно мати фіксований вказівник на попередній елемент. Dispose(p^.right); p^.right:=nil; Dispose(p^.left); p^.left:=nil; Б). Видалення напіввисячої вершини. При цьому всі елементи, що знаходяться нижче елемента, що видаляється підтягуються на один рівень вверх. Тема: Модульний принцип організації програм. Структурне програмування передбачає розділення алгоритмів на під алгоритми і програм на підпрограми. Такий поділ здійснюється не простим розділенням тексту програми на куски, а на логічно завершені цілісні компоненти. Об'єднання таких компонентів забезпечує об'єднання дій. В ранніх компіляторах мови Turbo Pascal з'явилася перша можливість розділення програм на окремі модулі, при цьому в модулях зосереджувалися окремі компоненти мови, що пов'язувалися спільними властивостями. Ці модулі окремо компілювалися і були доступними для всіх програм; це були свого роду бібліотеки інструментів мови програмування. Пізніше модульний принцип став переважати у програмуванні і особливо з початком розробки складних програмних систем. Теперішні програми фактично є невеликим виконуваним файлом, який використовує багато різних бібліотек. З розвитком мов програмування з'явилися бібліотеки динамічної компоновки.
|
|||
|