Иерархическая организация данных
Во всех рассмотренных выше структурах отдельные элементы (компоненты, поля, составляющие) структуры были формально равноправны. Существует, однако, широкий круг задач, в которых одни данные естественным образом «подвязаны» к другим. В этом случае возникает соподчиненная (иерархическая) структура данных. Ограничимся конкретным примером. Представим себе генеалогическое дерево, корень которого - имя человека, на следующем уровне - имена его родителей, еще на следующем - имена родителей родителей и т.д. Такая структура называется двоичным деревом, рис. 1.36.
Рис. 1.36. Структура типа «двоичное дерево»;
пара ближайших по горизонтали кружков -мужское и женское имя
Как структурировать эти данные (имена)? Для помещения их в текстовый массив и запись трудно придумать логически оправданный порядок следования. Самое разумное - создать динамическую структуру типа той, что изображена на рис. 1.36. современные языки программирования позволяют это делать и обрабатывать такие структуры с высокой эффективностью.
Контрольные вопросы и задания
1. Какое значение имеет выбор представления и организации данных при разработке программы?
2. Какие данные можно отнести к простейшим неструктурированным?
3. Какие данные называют структурированными?
4. Охарактеризуйте свойства данных целого, действительного типа.
5. Какими свойствами обладают литерные и строковые величины?
6. Что называют логическими данными?
7. Что такое массив?
8. Решение каких задач требует использования массивов?
9. Разберите алгоритм сортировки массива, приведенный в тексте. Предложите свой алгоритм, отличный от данного.
10. Как определяется тип «множество»?
11. Чем отличается комбинированный тип данных (запись) от массива?
12. Что такое очередь (файл)? Какое применение имеют файлы?
13. Что такое стек?
14. Разберите по аналогии с примером, имеющимся в тексте о стеке, вычисление других арифметических выражений с использованием стеков.
15. Придумайте примеры естественной иерархической организации данных.
Дата добавления: 2015-07-30; просмотров: 530;