AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma...
Transcript of AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma...
![Page 1: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/1.jpg)
AULA e07aAlgoritmos e Estruturas de Dados I
Árvores Binárias - Percursos (parte I)
Luciano Antonio Digiampietri
![Page 2: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/2.jpg)
Árvores Binárias - Percursos
Há diversas formas de percorrer uma árvore.
- Utilizamos abordagens recursivas para exibir oselementos de uma árvore, contar o número de nósou calcular sua altura.- Hoje discutiremos diferentes abordagens.
![Page 3: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/3.jpg)
Árvores Binárias - Percursos
Há diversas formas de percorrer uma árvore.- Utilizamos abordagens recursivas para exibir oselementos de uma árvore, contar o número de nósou calcular sua altura.
- Hoje discutiremos diferentes abordagens.
![Page 4: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/4.jpg)
Árvores Binárias - Percursos
Há diversas formas de percorrer uma árvore.- Utilizamos abordagens recursivas para exibir oselementos de uma árvore, contar o número de nósou calcular sua altura.- Hoje discutiremos diferentes abordagens.
![Page 5: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/5.jpg)
Árvores Binárias - PercursosOs percursos mais comuns em árvores bináriaspartem da raiz e, recursivamente, percorrem asubárvore à esquerda e em seguida a subárvore àdireita.
Estes percursos podem ser implementados demaneira iterativa (utilizando uma estrutura de dadosauxiliar);É possível também percorre a árvore em nível.
![Page 6: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/6.jpg)
Árvores Binárias - PercursosOs percursos mais comuns em árvores bináriaspartem da raiz e, recursivamente, percorrem asubárvore à esquerda e em seguida a subárvore àdireita.Estes percursos podem ser implementados demaneira iterativa (utilizando uma estrutura de dadosauxiliar);
É possível também percorre a árvore em nível.
![Page 7: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/7.jpg)
Árvores Binárias - PercursosOs percursos mais comuns em árvores bináriaspartem da raiz e, recursivamente, percorrem asubárvore à esquerda e em seguida a subárvore àdireita.Estes percursos podem ser implementados demaneira iterativa (utilizando uma estrutura de dadosauxiliar);É possível também percorre a árvore em nível.
![Page 8: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/8.jpg)
Árvores Binárias
Discutiremos as seguintes funções:Exibição dos elementos em pré-ordem, em ordeme em pós-ordem (implementações recursivas);Exibição dos em pré-ordem (implementaçãoiterativa);Exibição dos elementos em nível (implementaçãoiterativa);
![Page 9: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/9.jpg)
Modelagem#include <stdio.h>#include <malloc.h>#define true 1#define false 0
typedef int bool;typedef int TIPOCHAVE;
typedef struct aux{TIPOCHAVE chave;struct aux *esq, *dir;
} NO;
typedef NO* PONT;
![Page 10: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/10.jpg)
Modelagem#include <stdio.h>#include <malloc.h>#define true 1#define false 0
typedef int bool;typedef int TIPOCHAVE;
typedef struct aux{TIPOCHAVE chave;struct aux *esq, *dir;
} NO;
typedef NO* PONT;
![Page 11: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/11.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){
if (raiz == NULL) return;
printf("%i ",raiz->chave);
exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
}
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);
printf("%i ",raiz->chave);
exibirArvoreEmOrdem(raiz->dir);}
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);
printf("%i ",raiz->chave);
}
![Page 12: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/12.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){
if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
}
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
}
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
}
![Page 13: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/13.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
}
$ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
}
$ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
}
$ 30 50 60 40
![Page 14: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/14.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
}
$ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
}
$ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
}
$ 30 50 60 40
![Page 15: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/15.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40
30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
}
$ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
}
$ 30 50 60 40
![Page 16: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/16.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30
60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
}
$ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
}
$ 30 50 60 40
![Page 17: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/17.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30
60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
}
$ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
}
$ 30 50 60 40
![Page 18: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/18.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30
60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30
40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
}
$ 30 50 60 40
![Page 19: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/19.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30
60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30
40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
}
$ 30 50 60 40
![Page 20: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/20.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30
60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30
40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30
50 60 40
![Page 21: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/21.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30
60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40
50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30
50 60 40
![Page 22: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/22.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60
50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40
50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30
50 60 40
![Page 23: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/23.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40
50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30
50 60 40
![Page 24: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/24.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40
50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30
50 60 40
![Page 25: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/25.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40 50
60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30
50 60 40
![Page 26: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/26.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40 50
60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30
50 60 40
![Page 27: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/27.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40 50
60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30 50
60 40
![Page 28: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/28.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30 50
60 40
![Page 29: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/29.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30 50
60 40
![Page 30: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/30.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30 50 60
40
![Page 31: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/31.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30 50 60 40
![Page 32: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/32.jpg)
Percursos Pré/Em/Pós-ordemvoid exibirArvorePreOrdem(PONT raiz){if (raiz == NULL) return;printf("%i ",raiz->chave);exibirArvorePreOrdem(raiz->esq);exibirArvorePreOrdem(raiz->dir);
} $ 40 30 60 50
void exibirArvoreEmOrdem(PONT raiz){if (raiz == NULL) return;exibirArvoreEmOrdem(raiz->esq);printf("%i ",raiz->chave);exibirArvoreEmOrdem(raiz->dir);
} $ 30 40 50 60
void exibirArvorePosOrdem(PONT raiz){if (raiz == NULL) return;exibirArvorePosOrdem(raiz->esq);exibirArvorePosOrdem(raiz->dir);printf("%i ",raiz->chave);
} $ 30 50 60 40
![Page 33: AULA e07a Algoritmos e Estruturas de Dados I · 2020. 8. 4. · maneiraiterativa(utilizando uma estrutura de dados auxiliar); É possível também percorre a árvoreem nível. Árvores](https://reader033.fdocumentos.tips/reader033/viewer/2022060903/609f7fea2d8d0a1065073e47/html5/thumbnails/33.jpg)
AULA e07aAlgoritmos e Estruturas de Dados I
Árvores Binárias - Percursos (parte I)
Luciano Antonio Digiampietri