10a. Bomen
2021-03-12
slides.com/jod/pt_10a
Docent: Jo Devriendt
Assistent: Ann Philips
Coördinator: Joost Vennekens
voornaam.achternaam@kuleuven.be
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Definitie
- Gerichte graaf: knopen en gerichte bogen (geen gewichten)
- Recursieve definitie:
- Lege graaf
- Eén knoop
- Knoop met één of meer bogen naar bomen (met unieke knopen)
1
2
4
3
5
6
7
Allemaal bomen
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Terminologie
1
2
4
3
5
6
7
root / wortel
edge / boog / tak
interne
node / knoop
leaf / blad
- 2 is een child / kind van 1
- 1 is een parent / ouder van 2
- 3 is een descendant van 1
- 1 is een ancestor van 3
level 1
level 2
level 0
heighth / hoogte 3
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Terminologie 2
1
2
4
3
- Een boom is binair indien elke node exact 0 of 2 kinderen heeft
-
Een binaire boom is ideaal als elk level volledig "gevuld" is
- #nodes =
-
Een binaire boom is compleet indien
enkel het laatste level niet gevuld is, en
alle nodes van dat level links zitten- #nodes ≥
5
6
7
9
8
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Als datastructuur
typedef struct node {
int data;
struct node* links;
struct node* rechts;
} Node;
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Samenvatting
- Bomen zijn gerichte grafen met een parent/child relatie tussen de nodes
- Bomen kunnen worden gebruikt als basis voor niet-lineaire datastructuren
10a. Bomen
By Jo Devriendt
10a. Bomen
- 622