Professional Documents
Culture Documents
* �rvores bin�rias
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct no {
char c; /* info */
struct no *esq, *dir;
} No;
No* copia(No* p) {
if (p == NULL)
return NULL;
No *n = malloc(sizeof(No));
n->c = p->c;
n->esq = copia(p->esq);
n->dir = copia(p->dir);
return n;
}
void libera(No* p) {
if (p != NULL) {
libera(p->esq);
libera(p->dir);
free(p);
}
}
/* Cria a �rvore a
/ \
b c
/
d
*/
No* exemplo() {
return arv('a',arv('b',NULL,NULL),arv('c',arv('d',NULL,NULL),NULL));
}
void preorder(No* p) {
if (p != NULL) {
printf("%c",p->c);
preorder(p->esq);
preorder(p->dir);
}
}
void inorder(No* p) {
if (p != NULL) {
inorder(p->esq);
printf("%c",p->c);
inorder(p->dir);
}
}
void postorder(No* p) {
if (p != NULL) {
postorder(p->esq);
postorder(p->dir);
printf("%c",p->c);
}
}
return n;
}
void largura(No* p) {
}
int main() {
No *arv = monta_arv_expr();
printf("Pre: ");
preorder(arv);
printf("\nPos: ");
postorder(arv);
printf("\n");
return 0;
}