Sem II (Program I) - N9 Flashcards
Зачем используется стек при поиске в глубину?
Чтобы сохранять порядок узлов вдоль пути.
Wann gilt ein Binärbaum als sortiert?
Бинарное дерево считается отсортированным, если:
- Все узлы в левом поддереве узла меньше самого узла.
- Все узлы в правом поддереве узла больше самого узла.
Как вставить узел в отсортированное бинарное дерево?
Алгоритм решает на каждом узле, куда вставлять новый узел - слева или справа:
- Если значение меньше, проверить, есть ли место слева. Если да, вставить слева. В противном случае продолжить поиск в левом поддереве.
- Если значение больше, действовать аналогично с правой стороны.
- Если значение равно, узел не вставляется, и выводится сообщение об ошибке.
Was passiert, wenn der Baum leer ist?
Новый узел вставляется в качестве корня.
Was ist der Unterschied zwischen Preorder-, Inorder- und Postorder-Durchlauf in binären Bäumen?
Preorder: Корень → левое поддерево → правое поддерево
Inorder: левое поддерево → корень → правое поддерево
Postorder: левое поддерево → правое поддерево → корень
Wie wird ein Preorder-Durchlauf in Java implementiert?
public void preorder() { rekPreorder(root); } private void rekPreorder(BinNode k) { if (k != null) { tuWas(k.inhalt); rekPreorder(k.links); rekPreorder(k.rechts); } }
Welche Schritte sind beim Postorder-Durchlauf erforderlich?
- Обойти левое поддерево
- Обойти правое поддерево
- Посетить корень
Чем поиск в ширину (Levelorder) отличается от других обходов?
Поиск в ширину проходит дерево уровень за уровнем (слой за слоем), в то время как другие обходы являются рекурсивными и учитывают порядок корня и поддеревьев в зависимости от метода.
Wie könnte die Breitensuche in Java implementiert werden?
Поиск в ширину требует очереди для промежуточного хранения узлов текущего уровня:
- Вставить узлы текущего уровня в очередь.
- Последовательно вставлять дочерние узлы каждого узла в очередь.
- Повторять, пока не будут пройдены все уровни.
Welche praktische Anwendung hat die Breitensuche in Bäumen?
- Поиск в игровых деревьях (например, шахматы, шашки).
- Нахождение следующего игрового хода или выигрышной позиции за наименьшее количество ходов.
- Стратегии поиска с ограничением глубины для оптимизации.
Warum ist es wichtig, sich in der Breitensuche die Knoten einer Ebene zu merken?
Чтобы узлы могли быть пройдены в упорядоченном порядке (слева направо), их необходимо сохранить в очереди перед рассмотрением следующего уровня.
Wie wird ein Blattknoten aus einem sortierten Binärbaum entfernt?
- Найти узел, который нужно удалить.
- Удалить узел и установить указатель родительского узла в null.
Wozu wird die Datenstruktur Baum verwendet?
Деревья используются для отображения иерархических структур в наборах данных, например, деревья решений, деревья вывода и структуры баз данных.
Какой уровень доступа (видимости) к классу двоичных узлов вы порекомендуете?
Видимость класса должна быть ограничена (например, private или protected), чтобы избежать прямого доступа к данным узла и защитить структуру данных.
Как можно обойти дерево?
Tiefensuche: Preorder, Inorder, Postorder
Breitensuche