Sem II (Program I) - N9 Flashcards

1
Q

Зачем используется стек при поиске в глубину?

A

Чтобы сохранять порядок узлов вдоль пути.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wann gilt ein Binärbaum als sortiert?

A

Бинарное дерево считается отсортированным, если:
- Все узлы в левом поддереве узла меньше самого узла.
- Все узлы в правом поддереве узла больше самого узла.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Как вставить узел в отсортированное бинарное дерево?

A

Алгоритм решает на каждом узле, куда вставлять новый узел - слева или справа:

- Если значение меньше, проверить, есть ли место слева. Если да, вставить слева. В противном случае продолжить поиск в левом поддереве.
- Если значение больше, действовать аналогично с правой стороны.
- Если значение равно, узел не вставляется, и выводится сообщение об ошибке.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was passiert, wenn der Baum leer ist?

A

Новый узел вставляется в качестве корня.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist der Unterschied zwischen Preorder-, Inorder- und Postorder-Durchlauf in binären Bäumen?

A

Preorder: Корень → левое поддерево → правое поддерево
Inorder: левое поддерево → корень → правое поддерево
Postorder: левое поддерево → правое поддерево → корень

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie wird ein Preorder-Durchlauf in Java implementiert?

A
public void preorder() {    
    rekPreorder(root); 
}

private void rekPreorder(BinNode k) {
    if (k != null) {
        tuWas(k.inhalt);  
        rekPreorder(k.links);  
        rekPreorder(k.rechts);  
    } 
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Schritte sind beim Postorder-Durchlauf erforderlich?

A

- Обойти левое поддерево
- Обойти правое поддерево
- Посетить корень

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Чем поиск в ширину (Levelorder) отличается от других обходов?

A

Поиск в ширину проходит дерево уровень за уровнем (слой за слоем), в то время как другие обходы являются рекурсивными и учитывают порядок корня и поддеревьев в зависимости от метода.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie könnte die Breitensuche in Java implementiert werden?

A

Поиск в ширину требует очереди для промежуточного хранения узлов текущего уровня:
- Вставить узлы текущего уровня в очередь.
- Последовательно вставлять дочерние узлы каждого узла в очередь.
- Повторять, пока не будут пройдены все уровни.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche praktische Anwendung hat die Breitensuche in Bäumen?

A

- Поиск в игровых деревьях (например, шахматы, шашки).
- Нахождение следующего игрового хода или выигрышной позиции за наименьшее количество ходов.
- Стратегии поиска с ограничением глубины для оптимизации.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Warum ist es wichtig, sich in der Breitensuche die Knoten einer Ebene zu merken?

A

Чтобы узлы могли быть пройдены в упорядоченном порядке (слева направо), их необходимо сохранить в очереди перед рассмотрением следующего уровня.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie wird ein Blattknoten aus einem sortierten Binärbaum entfernt?

A

- Найти узел, который нужно удалить.
- Удалить узел и установить указатель родительского узла в null.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wozu wird die Datenstruktur Baum verwendet?

A

Деревья используются для отображения иерархических структур в наборах данных, например, деревья решений, деревья вывода и структуры баз данных.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Какой уровень доступа (видимости) к классу двоичных узлов вы порекомендуете?

A

Видимость класса должна быть ограничена (например, private или protected), чтобы избежать прямого доступа к данным узла и защитить структуру данных.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Как можно обойти дерево?

A

Tiefensuche: Preorder, Inorder, Postorder
Breitensuche

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist der Unterschied zwischen Tiefen- und Breitensuche?

A

Поиск в глубину: Проходит по узлам вдоль одного пути до конца, прежде чем исследовать другие пути.
Поиск в ширину: Проходит по узлам уровень за уровнем.

17
Q

Wie kann man Tiefen- und Breitensuche auf Bäumen in Java implementieren?

A

Поиск в глубину: Рекурсивная реализация, которая обращается к левому и правому поддеревьям.
Поиск в ширину: Использование очереди (Queue) для последовательного посещения узлов одного уровня

18
Q

Легче ли вставить или удалить узел в отсортированном двоичном дереве?

A

Вставка обычно проще, так как требует только поиска правильной позиции. Удаление может быть сложнее, особенно когда удаляемый узел имеет два дочерних узла.

19
Q

Blatt (Terminalknoten)

A

Knoten ohne Kinder

20
Q

innerer Knoten

A

** ein Knoten mit mind. einem Kind**

21
Q

Höhe (Tiefe) des Baumes

A

**max. (Kanten-)Entfernung von Wurzel bis zum Blatt **

22
Q

Tiefe (Level) eines Knoten

A

seine Entfernung zur Wurzel (Tiefe der Wurzel = 0)

23
Q

Binärbaum

A

Baum, bei dem jeder Knoten max. zwei Kindknoten hat