Indice denso

Disponível somente no TrabalhosFeitos
  • Páginas : 4 (764 palavras )
  • Download(s) : 0
  • Publicado : 23 de novembro de 2011
Ler documento completo
Amostra do texto
#include
#include
#include

typedef struct car
{
int codigo;
char placa[30];
char modelo[30];
int ano;
}car;

typedef struct arvore
{
intinf;
int pos;
struct arvore *esq;
struct arvore *dir;
}arvore;

typedef struct in
{
int inf,pos,e,d;
}in;

int op;
in ind;

void menu ()
{printf("\n\n\tIndice Denso\n");
printf("\n1-Carregar arquivo principal.");
printf("\n2-Criar arquivo de indice.");
printf("\n3-Buscar um elemento.");
printf("\n4-Imprimir arquivo deindice.");
printf("\n5-Sair.\n\n ");
scanf("%i",&op);
}

arvore* remove_no(arvore *arv, car carro)
{
arvore *no;

if(arv->inf==carro.codigo)
{
if(arv->esq==NULL&& arv->dir==NULL)
{
free(arv);
return NULL;
}
else
if(arv->esq==NULL || arv->dir==NULL)
{
if(arv->esq ==NULL)
no=arv->dir;
else
no=arv->esq;
free(arv);
return no;
}
else
{no=arv->dir;
while(no->esq!=NULL)
{
no=no->esq;
}
arv->inf=no->inf;
arv->pos=no->pos;carro.codigo=no->inf;
arv->dir=remove_no(arv->dir, carro);
carro.codigo=arv->inf;
return arv;
}
}
else
{
if(carro.codigoinf)arv->esq=remove_no(arv->esq, carro);
else
arv->dir=remove_no(arv->dir, carro);
return arv;
}
}

int altura(arvore *arv)
{
int esq,dir;if(arv==NULL)
return 0;
esq=altura(arv->esq);
dir=altura(arv->dir);
if(esq>dir)
return esq+1;
else
return dir+1;
}

arvore*...
tracking img