2021-03-12
slides.com/jod/pt_10b
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
Veel taal-expressies hebben een onderliggende boomstructuur, ook wel abstract syntax tree genoemd
geeft aan
Archibald
wisselgeld
en
de bakker
hem
koopt
een brood
||
!
=
int x
z
y
Nodig om ambiguïteit te voorkomen:
int x = !y||z <-> int x = !(y||z)
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
*
3
+
1
8
typedef struct node {
char operatie;
int waarde;
struct node* links;
struct node* rechts;
} Node;
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
*
3
+
1
8
Betekenis van expressie verandert niet!
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
typedef struct node {
char operatie;
int waarde;
struct node* links;
struct node* rechts;
} Node;
void print(Node* n){
if(operatie!='0'){
printf("%c",operatie);
}else{
printf("%d",waarde);
}
}
void inorder(Node* n){
if(n!=NULL){
inorder(n->links);
print(n);
inorder(n->rechts);
}
}
void preorder(Node* n){
if(n!=NULL){
print(n);
preorder(n->links);
preorder(n->rechts);
}
}
void postorder(Node* n){
if(n!=NULL){
postorder(n->links);
postorder(n->rechts);
print(n);
}
}
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