"Информатика (в 3 частях)", Семёнов А.Л., Рудченко Т.А.
Дерево — схема, которая показывает, как элементы связаны и расположены по уровням: от начальной вершины расходятся ветви, а те могут разветвляться дальше. Такие схемы помогают наглядно представлять иерархии, например папки и файлы или части алгоритма. Чтобы читать дерево, нужно отличать вершину от линии связи, находить вершины, непосредственно отходящие от выбранной, и определять листья — окончания ветвей. У каждой вершины, кроме корня, есть одна предыдущая вершина, а следующих может быть несколько или не быть вовсе.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Дерево — структура из связанных вершин, в которой выделена начальная вершина, а от каждой вершины вниз могут отходить следующие вершины. Его изображают как схему с линиями-связями: от одной точки можно перейти к другим, а затем продолжить движение по ветвям. Такое представление помогает увидеть порядок и подчинённость элементов, не смешивая связи между разными уровнями.
Вершина — отдельный элемент дерева, изображаемый обычно кружком, прямоугольником или подписью. Вершину можно считать точкой схемы, к которой подходят или от которой отходят линии. Она обозначает один объект или один шаг структуры, поэтому при чтении дерева важно различать сами вершины и соединяющие их линии.
Следующие вершины — вершины, непосредственно расположенные ниже данной и соединённые с ней линиями. «Непосредственно» означает, что между выбранной вершиной и следующей нет других вершин: до неё можно дойти по одной связи. Это понятие нужно, чтобы точно описывать ветвление, а не перечислять все элементы, которые встречаются дальше по пути.
Лист — вершина, у которой нет следующих вершин. От неё не продолжаются линии к другим вершинам, поэтому на ней заканчивается одна из ветвей. Понятие листа помогает быстро находить окончания дерева и отличать их от вершин, от которых схема продолжается вниз.
Дерево строят от корневой вершины — той, с которой начинается схема. Сначала от корня проводят связи к следующим вершинам, а затем при необходимости добавляют связи от них к новым элементам. Такой порядок нужен, чтобы у каждого элемента было ясное место в структуре: движение начинается в одной точке и расходится по ветвям, не образуя второго независимого начала.
У каждой вершины, кроме корня, есть одна предыдущая вершина: по дереву к ней ведёт единственная связь со стороны начала. Если бы у вершины были две предыдущие, к ней сходились бы разные пути, и структура перестала бы быть деревом в принятом смысле. Следующих вершин, напротив, может быть несколько: одна вершина способна разделять дальнейший путь на разные ветви. А если продолжение не требуется, следующих вершин у неё нет.
Положение вершины определяют по связям, а не только по тому, где она нарисована на листе. Предыдущая вершина — та, от которой к выбранной ведёт прямая связь сверху; следующие — те, к которым от неё идут прямые связи вниз. Поэтому даже если схема наклонена или повёрнута, направление чтения задаёт корень и устройство связей. Линия без промежуточной вершины показывает непосредственное соседство.
Вершины, от которых схема не продолжается, называют листьями, потому что на них заканчиваются ветви. У листа нет следующей вершины, но у него может быть предыдущая: окончание ветви всё равно связано с остальным деревом. Если у вершины есть хотя бы одна следующая, она не лист, даже когда сама находится близко к нижнему краю рисунка. Значит, лист определяют по отсутствию продолжения, а не по месту на странице.
Читать дерево удобно сверху вниз, начиная с корня, и переходить по одной связи за раз. Для выбранной вершины сначала находят линии, которые отходят от неё, а затем называют только те вершины, с которыми эти линии соединены. Не следует включать в ответ вершины, до которых нужно пройти через другую вершину: они находятся дальше по ветви. Такой способ позволяет одновременно верно перечислить следующих и проследить, где ветви заканчиваются.
| Элемент | Что это | Как распознать | Пример |
|---|---|---|---|
| Корень | Вершина, с которой начинается дерево | У неё нет предыдущей вершины | Самая верхняя вершина схемы |
| Вершина | Отдельный элемент дерева | Соединена с предыдущей и, возможно, со следующими вершинами | A, B или C на схеме |
| Следующие вершины | Вершины, непосредственно отходящие от данной вниз | Находятся на один шаг ниже выбранной вершины | У B следующими являются D и E |
| Лист | Вершина без следующих вершин | От неё не отходят линии вниз | D и E в конце ветвей |
Пользуйся таблицей как проверочным списком: сначала определи корень, затем рассмотри связи каждой вершины. Для поиска следующих учитывай только один шаг по линии, а для поиска листьев проверь, есть ли продолжение вниз. Примеры букв условны: в другой схеме названия вершин могут быть любыми.
Задача 1. В дереве A соединена с B и C, B — с D и E, а C — с F. Назовите следующие вершины для B и все листья дерева.
Ответ: следующие для B — D и E; листья — D, E и F.
Задача 2. Дерево задано парами связей: A–B, A–C, B–D, C–E, C–F, E–G. Для каждой вершины, кроме корня, укажите предыдущую вершину; перечислите листья.
Ответ: предыдущие вершины: B — A, C — A, D — B, E — C, F — C, G — E; листья — D, F и G.
Задача 3. По схеме с корнем A определите, является ли вершина C листом, назовите следующие вершины C и подсчитайте количество листьев.
Ответ: конкретная схема в условии не задана, поэтому определить следующие для C и количество листьев нельзя. По схеме это находят указанными шагами; C является листом только тогда, когда от неё не отходит ни одной связи дальше.
Ошибка — называть листом любую вершину, нарисованную внизу. Её допускают, потому что нижнее положение кажется достаточным признаком, хотя ветвь может продолжаться ещё ниже. Проверь, отходит ли от вершины связь к другой вершине: если отходит, это не лист.
Иногда следующими называют все вершины, расположенные ниже выбранной. Так происходит, когда взгляд сразу прослеживает всю ветвь, а не одну связь. Для проверки проведи мысленно только один шаг вниз: следующими будут лишь вершины, непосредственно соединённые с выбранной, а остальные окажутся дальше по пути.
Можно перепутать предыдущую и следующую вершины, если читать схему снизу вверх. Тогда связь, ведущую к корню, ошибочно принимают за продолжение ветви. Найди корень и двигайся от него вниз: вершина, из которой пришёл путь, предыдущая, а та, к которой ведёт связь дальше, следующая.
Корень иногда считают листом только потому, что он стоит в начале дерева или кажется отдельной вершиной. Но корень обычно имеет следующие вершины, поэтому начальное положение само по себе не делает его листом. Проверь наличие связей, отходящих от корня: листом он будет только при отсутствии следующих вершин, например если дерево состоит из одного корня.
Для чтения дерева нужно уметь разбирать схемы: узнавать элементы и линии связи между ними. Эти навыки пригодятся при изучении многоуровневых структур данных и способов представлять информацию в виде иерархий. Иерархическое устройство встречается в папках и файлах, организационных структурах и схемах алгоритмов. Во всех таких случаях дерево помогает понять, откуда начинается структура и как её части связаны между собой.
Может ли у вершины быть несколько следующих вершин?
Да. От одной вершины могут отходить линии к нескольким следующим вершинам, и тогда ветвь разветвляется. Например, у B следующими могут быть D и E.
Как быстро найти все листья на рисунке?
Проверяй вершины по очереди и смотри, отходит ли от каждой линия дальше вниз. Если продолжения нет, вершина — лист. Удобно проверять все окончания ветвей.
Может ли корень быть листом?
Да, если дерево состоит только из корня и от него не отходят следующие вершины. Если у корня есть хотя бы одна следующая вершина, он не является листом.
Чем следующие вершины отличаются от всех вершин, расположенных ниже?
Следующими называют только вершины, непосредственно соединённые с выбранной и находящиеся на один шаг ниже неё. Другие вершины могут находиться ещё ниже, но они не являются следующими для неё.
Может ли одна вершина иметь две предыдущие вершины?
В обычном дереве — нет: у каждой вершины, кроме корня, ровно одна предыдущая вершина. Если к вершине ведут две связи сверху, такая схема уже не соответствует этому устройству дерева.
Дерево. Следующие вершины, листья