absorcao de algoroi
499 palavras
2 páginas
#include #include
//Declaração da estrutura nó typedef struct no { int info; struct no *dir, *esq;
};
//Função para criar um nó no * cria_no(int x){ no *p; p=new no; p->info = x; p->esq = p->dir =NULL; return(p); } //Função para inserir um nó na Árvore binária de busca (ABB) void insere_ABB(no ** pos, int x){ if (*pos ==NULL){ *pos = cria_no(x); return; } if (x < (*pos)->info){ insere_ABB(&((*pos)->esq), x); }else { if(x>(*pos)->info) { insere_ABB( &((*pos)->dir), x); }else{ printf(“%d ja estava inserido na arvore \n”, x); } }
}
//Função de impressão em ordem void inorder(no *p){ if (p!=NULL) { inorder (p->esq); printf (” %d “, p->info); inorder (p->dir); }
}
// Função que verifica se um elemento está cadastrado ou não na árvore int busca_ABB(no * pos, int x){ if (pos ==NULL){ return (0); } if (x== pos->info) { return(1); } if (x < pos->info){ return(busca_ABB(pos->esq, x)); }else{ if(x> pos->info) { return(busca_ABB(pos->dir, x)); } }
}
// Função que recebe um elemento de uma árvore e retorna o seu nível. int nivel_ABB(no *pos, int x, int nivel){ if (pos ==NULL){ return (-1); } if (x== pos->info) { return(nivel); } if (x < pos->info){ return(nivel_ABB(pos->esq, x, nivel+1)); }else{ if(x> pos->info) { return(nivel_ABB(pos->dir, x, nivel+1)); } }
}
// Função que recebe a raiz de uma árvore binária e informa se ela é binária de busca. int testa_ABB(no * pos){ int arvesq=1, arvdir=1; if (pos ==NULL){ return (1); } if ((pos->esq ==NULL) && (pos->dir ==NULL))