C/Visual C - ABB

 
Vista:

ABB

Publicado por gunshot (3 intervenciones) el 04/07/2005 08:37:58
hola
estoy trabajando con arboles binarios de busqueda, pero tengo dudas con algunos cosas que no me funkan, si alguien tiene algun codigo echo con arboles como por ejemplos agenda que lo envia a mi correo porfa o que lo postee aka .... es urgente plz
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ABB

Publicado por gunshot (3 intervenciones) el 04/07/2005 09:05:17
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
#include<stdlib.h>
#include<string.h>
#define memoria (struct apellidos *)malloc(sizeof(struct apellidos))
struct datos_apellidos{
char apellido[20];
char nombre[20];
int fono;
char direccion[30];
};

struct apellidos{
char apellido[20];
struct apellidos *izq,*der;
struct datos_apellidos datos;
}*ap,*auxapellidos;
int fono;
//--------------------------------------------------------------------------------
//Nombre: inicializacion
//Tipo: constructora
//Entrada: Puntero Raiz
//Salida: raiz inicializada

void inicializa(struct apellidos **ap)
{
*ap=NULL;
}

//Nombre: insercion_binaria
//Tipo: modificadora
//Entrada: Puntero Raiz , valor nuevo
//Salida: arbol modificado
void insercion_apellidos(struct apellidos **ap, char apellid[20])
{
*ap=auxapellidos;
if((*ap)==NULL)
{
(*ap)=memoria;

if((*ap)!=NULL)
{
strcpy((*ap)->apellido,apellid);
(*ap)->der=NULL;
(*ap)->izq=NULL;
strcpy(auxapellidos->datos.apellido,(*ap)->apellido);
printf("\nIngrese Nombre: ");
gets(auxapellidos->datos.nombre);
fflush(stdin);
printf("\nIngrese fono: ");
scanf("%d",&fono);
fflush(stdin);
auxapellidos->datos.fono=fono;
printf("\nIngrese direccion: ");
gets(auxapellidos->datos.direccion);
fflush(stdin);
//imprime los datos para verificar si los graba
printf("\nfono> %d",auxapellidos->datos.fono);
printf("\napellidoap> %s",(*ap)->apellido);
printf("\napellidoaux> %s",auxapellidos->datos.apellido);

//se supone que guarda la estructura
FILE *stream;

if ((stream = fopen("guiatelef.dat", "wb")) == NULL) /* open file TEST.$$$ */
{
fprintf(stderr, "Cannot open output file.\n");

}
fwrite(&ap, sizeof(ap), 1, stream); /* write struct s to file */
fclose(stream); /* close file */

}
else{
printf("%s no insertado.\n",apellid);
}
}
else if(apellid>(*ap)->apellido)
insercion_apellidos(&(*ap)->der,apellid);

else if(apellid<(*ap)->apellido)
insercion_apellidos(&(*ap)->izq,apellid);

else printf("Dato duplicado.\n");


}

// -----------------------------------------------------------------------------

//Nombre: inorden
//Tipo: analizadora
//Entrada: Puntero Raiz
//Salida: vista del arbol

void inorden (struct apellidos *ap)
{
if(ap!=NULL)
{
inorden(ap->izq);

printf("%s ",ap->apellido);
inorden(ap->der);

}
}


//menu

char apellido[20];
char buscar[20];

int i=0;

void main()

{
clrscr();

inicializa(&ap);
for(i=0;i<3;i++){
printf("\nIngrese apellido: ");
gets(apellido);
fflush(stdin);
insercion_apellidos(&ap,apellido);
}
inorden(ap);
clrscr();
printf("\nBuscar fono por apellido\n");

auxapellidos=ap;
//queriamos buscar el numero de fono por el apellido
//pero no guarda los apellidos...
printf("\ningrese apellido a buscar: ");
gets(buscar);
fflush(stdin);

if (strcmp(ap->apellido,buscar)==0)
{
if(auxapellidos->apellido!=NULL)
{
printf("%s",auxapellidos->apellido);
printf("%s",ap->datos.fono);
}
}
else printf("no son iguales");

getch();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ABB

Publicado por gunshot (3 intervenciones) el 04/07/2005 09:06:44
esa era la estructura en la que estoy trabajando... plz ayuda!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ABB

Publicado por jhon serrano (1 intervención) el 16/09/2005 20:15:50
tengo un programa en c++ de abb me faltan las funciones de borrado y buscar si puedes me haces el favor y me colaboras. gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar