TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Estrutura De Dados

Artigo: Estrutura De Dados. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  15/6/2014  •  527 Palavras (3 Páginas)  •  252 Visualizações

Página 1 de 3

Árvores binárias de busca

typedef struct s_cel {

int elem;

struct s_cel *esq,*dir;

} cel;

typedef cel* no;

no busca(no raiz, int valor) {

no p = raiz;

while((p!=NULL)&&(p->elem!=valor) {

if(p->elem>valor)

p=p->esq;

else

p=p->dir;

}

return p;

}

– Implemente a versão recursiva do algoritmo de busca

no buscaRec(no raiz, int valor) {

if( raiz->elem == valor)

return raiz;

if(raiz->elem > valor)

return(buscaRec(raiz->esq);

if(raiz->elem < valor)

return(buscaRec(raiz->dir);

}

– Escrever em C a rotina insABB(raiz,x) que insira o elemento x na árvore binária de busca ABB

– Representar a ávore binária de busca depois da inserção dos elementos: 5 9 3 1 8 3 4 2 7

– Escrever em C a rotina max(ABB) que retorne o maior elemento de uma árvore binária de busca ABB

– Escreva uma rotina recursiva alt(p) que calcule a altura da árvore binária apontada por p.

– Escreva um programa usando árvore binária de busca que calcule o número de repetições num vetor de inteiros.

Inserção em árvore AVL

typedef struct s_cel {

int elem;

int altura;

struct s_cel *esq,*dir;

} cel;

typedef cel* no;

no insere(no esse, int valor){

if(esse==NULL)

esse=criano(valor);

else {

if(valor<esse->elem) {

esse->esq=insere(esse->esq,valor);

if(altura(esse->esq)-altura(esse->dir)==2)

if(valor < esse->esq->elem)

esse = rodaUmEsquerda(esse);

else

esse = rodaDuploEsquerda(esse);

}

else

if(valor > esse->elem) {

esse->dir=insere(esse->dir,valor);

if(altura(esse->dir)-altura(esse->esq)==2)

if(valor > esse->dir->elem)

esse = rodaUmDireita(esse);

else

esse = rodaDuploDireita(esse);

}

}

esse->altura = Max(altura(esse->esq),altura(esse->dir))+1;

return esse;

}

no criano(int valor) {

no novo = malloc(sizeof(cel));

novo->elem=valor;

novo->esq=novo->dir=NULL;

...

Baixar como (para membros premium)  txt (3.4 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com