

Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Implementação das bibliotecas de Arvore binária ordenada
Tipologia: Notas de estudo
1 / 2
Esta página não é visível na pré-visualização
Não perca as partes importantes!


Definição da Estrutura de Dados do tipo LISTA #include<alloc.h> #include<stdio.h> #define ERRO 0 #define OK 1
typedef struct stno { int dado; struct stno *esq; struct stno *dir; }no;
typedef no* arvore;
Inicializa a árvore void inicializa( arvore *a ) { *a = NULL; }
Verificar se a árvore está vazia int vazia(arvore a) { return (a == NULL); }
Criação de um nó da árvore ordenada /* cria um novo no na árvore, no local adequado, do tipo arvore e retorna um ponteiro para a arvore criada */
no* insere_ord( arvore a, int chave) { if (a == NULL) { a = (no*)malloc(sizeof(no)); a->dado = chave; a->esq = a->dir = NULL; } else if ( chave < a->dado ) { a->esq = insere( a->esq, chave ); } else { a->dir = insere( a->dir, chave ); } return a;
Ir para o filho esquerdo /* Caminha para o filho esquerdo da arvore passada como parametro, retornando o endereco deste no' / no filhoesq(arvore a) { if (vazia(a)) return NULL; else return ( a->esq ); }
Ir para o filho direito de uma árvore /* Caminha para o filho direito da arvore passada como parametro, retornando o endereco deste no' / no filhodir(arvore a) { if (vazia(a)) return NULL;
else return ( a->dir ); }
Pesquisar um nodo no* buscaord( arvore a, int chave ){ if ( a == NULL ) return NULL; else if ( chave < a->dado ) return buscaord( a->esq, chave ); else if ( chave > a->dado ) return buscaord( a->dir, chave ) else /* Se cair aqui, o nó foi encontrado */ return a ; }