/* Modulo de árvores binárias (com chaves inteiras) */ typedef int KeyType; #define MAX 21 typedef struct treeentry{ KeyType key; char name[MAX]; } TreeEntry; typedef struct treenode{ TreeEntry entry; struct treenode *left; struct treenode *right; } TreeNode; typedef TreeNode* Tree; // cria uma árvore vazia Tree createTree(void); // testa se a árvore é vazia int isEmptyTree(Tree); // conta o número de nodos da árvore int sizeTree(Tree); // calcula a altura da árvore int heightTree(Tree); // apaga toda árvore void delTree(Tree*); // travessias (genéricas) void preOrderTree(Tree,void (*fun)(TreeEntry)); void inOrderTree(Tree,void (*fun)(TreeEntry)); void postOrderTree(Tree,void (*fun)(TreeEntry)); // visualiza o conteudo de uma árvore void printTree(Tree); // ÁRVORES BINÁRIAS DE PROCURA // insere um novo elemento numa árvore binária de procura. Tree insertTree(Tree, KeyType, char *); // procura um elemento numa árvore binária de procura TreeNode* searchTree(Tree, KeyType); // lê o conteudo de uma árvore de StdIn Tree readTree(void);