Содержание
- 2. ДЕРЕВО - СТРУКТУРА, КОТОРАЯ ХАРАКТЕРИЗУЕТСЯ СЛЕДУЮЩИМИ СВОЙСТВАМИ: существует единственный элемент, на который не ссылается никакой другой
- 3. Элементы дерева, которые не ссылаются на другие элементы, являются терминальными (т.е. конечными) или листьями. А элементы,
- 4. Узлы располагаются по уровням. Корень – нулевой уровень и т.д. Максимальный уровень какого-либо элемента дерева называется
- 5. В бинарном дереве из каждой вершины выходит не более двух дуг. В сильноветвящемся дереве количество дуг
- 6. ОСНОВНЫЕ ОПЕРАЦИИ НАД ДЕРЕВЬЯМИ: пройти все узлы в определенном порядке, найти узел с заданным свойством, определить
- 7. ПОЛНОЕ И НЕПОЛНОЕ БИНАРНЫЕ ДЕРЕВЬЯ
- 8. СТРОГО И НЕ СТРОГО БИНАРНЫЕ ДЕРЕВЬЯ
- 9. ПРЕДСТАВЛЕНИЕ БИНАРНЫХ ДЕРЕВЬЕВ : Списочное представление бинарных деревьев основано на элементах, соответствующих узлам дерева. Каждый элемент
- 10. ПРЕДСТАВЛЕНИЕ БИНАРНЫХ ДЕРЕВЬЕВ : В виде массива проще всего представляется полное бинарное дерево, так как оно
- 11. ПРИМЕР: Разработать программу создания и редактирования бинарного дерева: Добавление узлов Удаление узлов Задание текущего узла Отображение
- 12. program bin_tree_edit; type node=record name: string; left, right: pointer; end; var n:integer; pnt_s,current_s,root: pointer; pnt,current:^node; s:
- 13. {Поиск узла по содержимому} procedure node_search (pnt_s:pointer; var current_s:pointer); var pnt_n:^node; begin pnt_n:=pnt_s; writeln(pnt_n^.name); if not
- 14. {Вывод списка всех узлов дерева} procedure node_list (pnt_s:pointer); var pnt_n:^node; begin pnt_n:=pnt_s; writeln(pnt_n^.name); if pnt_n^.left nil
- 15. {Удаление узла и всех его потомков в дереве} procedure node_dispose (pnt_s:pointer); var pnt_n:^node; begin if pnt_s
- 16. {основная программа} begin new(current);root:=current; current^.name:='root'; current^.left:=nil; current^.right:=nil; repeat writeln('текущий узел -',current^.name); writeln('1 – присвоить имя левому
- 17. if n=1 then begin {Создание левого потомка} if current^.left= nil then new(pnt) else pnt:= current^.left; writeln('left
- 18. if n=2 then begin {Создание правого потомка} if current^.right= nil then new(pnt) else pnt:= current^.right; writeln('right
- 19. if n=3 then begin {Поиск узла} writeln('name ?'); readln; read(s); current_s:=nil; pnt_s:=root; node_search (pnt_s, current_s); if
- 20. if n=4 then begin {Вывод списка узлов} pnt_s:=root; node_list(pnt_s); end;
- 21. if n=5 then begin {Удаление поддерева} writeln('l,r ?'); readln; read(s); if (s='l') then begin {Удаление левого
- 22. ТЕСТЫ: Вопрос 1. Какие из указанных ниже структур данных относятся к встроенным: 1) списки; 2) целый
- 23. ТЕСТЫ: Вопрос 2. Какая из ниже перечисленных структур данных отличается наличием вершины: 1) дерево; 2) множество;
- 24. ТЕСТЫ: Вопрос 3. Описание Var i, j : integer; x : real; s: string; объявляет переменные.
- 25. ТЕСТЫ: Вопрос 4. Упорядоченная совокупность элементов некоторого типа, адресуемых при помощи одного или нескольких индексов, называется:
- 26. ТЕСТЫ: Вопрос 5. Структура данных, объединяющая элементы данных разных типов, называется: 1) массив; 2) дерево; 3)
- 27. ТЕСТЫ: Вопрос 6. Структуру данных стек можно организовать с помощью: 1) массивов; 2) деревьев; 3) записей;
- 28. ТЕСТЫ: Вопрос 7. Частным случаем графа является: стек; очередь; дерево; матрица.
- 30. Скачать презентацию