ayuda en devc++
necesito que me digan que significa el error que me tira al compilar mi programa..
aca les mando el codigo para que vean en que puede estar fallando y me den una manito..es el algoritmo de un arbol AVL y me tira un solo error al compilar
// libreria.mia libreria.h
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <iomanip.h>
#include <iostream.h>
#include <fstream.h>
#include <conio.c>
#define FALSE 0
#define TRUE 1
typedef struct _AVL
{
char esp[40], ing[40];
struct _AVL *izq, *der;
int balance;
} AVL ;
char s[55];
//
// prototipos
//
//int vacia(AVL);
AVL *insertaAVL( *AVL ,char ,char ,int);
//void GmuestraAVL(AVL ,int,int,int,int );
//void Principal ( HDC );
//
// AVL
//
int vacia(AVL *p)
{ return p == NULL ;
}
void borraAVL(AVL *t) // borra todo el arbol ....
{
if ( t != NULL )
{
borraAVL(t->izq);
borraAVL(t->der);
delete t ;
}
}
/*
void BorraLaVentana(HDC h)
{
HBRUSH hBrush;
hBrush = CreateSolidBrush(RGB(rand()%256,rand()%256,rand()%256));
RECT rect = {0,0,ancho,alto}; // 744 y 575 son el tamaño de la ventana
FillRect(h, &rect, hBrush); //rellena un rectangulo con el color
}
*/
AVL *insertaAVL( AVL *p, char espa[], char ingl[], int *bandera)
{
AVL *q, *r, *p2 ;
if (vacia(p))
{ // llego a una hoja
q = new AVL ;
if ( q == NULL )
{
cout << " se acabo la memoria ..." << endl;
return NULL ;
}
strcpy(q->esp,espa); strcpy(q->ing,ingl); q->balance = 0 ; q->izq = q->der = NULL ;
*bandera = TRUE;
return q;
} // fin de vacio
else if ( strcmp (espa,p->esp)<0)
{ // inserte a la izquierda
p->izq = insertaAVL(p->izq, espa, ingl, &bandera);
if ( *bandera ) // es verdadera
switch ( p->balance )
{
case 1 : p->balance = 0 ; *bandera = FALSE ; break;
case 0 : p->balance = -1 ; break ;
case -1: // rebalanceo
r = p->izq;
if ( r->balance == -1 ) // rotacion LL
{
p->izq = p->der; r-> der = p;
p->balance = 0 ; p = r ;
}
else // rotacion LR
{
p2 = r->der ;
r->der = p2->izq; p2->izq = r;
p->izq = p2->der; p2->der = p ;
if (p2->balance == -1) p->balance = 1 ;
else p->balance = 0 ;
if (p2->balance == 1) r->balance = -1 ;
else r->balance = 0 ;
p = p2 ;
}
p->balance = 0 ; *bandera = FALSE ;
} // fin del switch
}
else if ( strcmp(espa,p->esp)>0 )
{ // inserta a la derecha
p->der = insertaAVL(p->der, espa, ingl,&bandera);
if ( *bandera ) // es verdadera
switch ( p->balance )
{
case -1 : p->balance = 0 ;
*bandera = FALSE ;
break;
case 0 : p->balance = 1 ;
break ;
case 1 : // rebalanceo
r = p->der;
if ( r->balance == 1 ) // rotacion RR
{
p->der= r->izq; r-> izq = p;
p->balance = 0 ; p = r ;
}
else // rotacion RL
{
p2 = r->izq;
r->izq = p2->der; p2->der = r;
p->der = p2->izq; p2->izq = p ;
if (p2->balance == 1)
p->balance = -1 ;
else
p->balance = 0 ;
if (p2->balance == -1)
r->balance = 1 ;
else
r->balance = 0 ;
p = p2 ;
}
p->balance = 0 ; *bandera = FALSE ;
} // fin del switch
}
return p;
}
/* -----------------------------------
BUSCADOR
-----------------------------------
*/
/*
char buscar (AVL *p, char espa)
{ int comp;
char tmp[42]='_';
if (p==NULL)
{ strcat(tmp,espa);
strcat(tmp,'_');
return tmp;
}
comp = strcmp (espa,p->esp);
if (comp==0)
return (p->ing);
else if (comp <0)
{ tmp=buscar(p->izq,espa);
return tmp;
}
else
{ tmp= buscar(p->der,espa);
return tmp;
}
}
*/
////////////////////////////// llenado del arbol desde el archivaldo
//
int Principal ( HDC hDC )
{
AVL *Q = NULL ;
int i,j,k;
char *pal_ingles, *pal_cast;
pal_ingles = new char[40];
pal_cast = new char[40];
ifstream archivo;
archivo.open("dicc.txt");
while (archivo.fail())
{
archivo >> pal_ingles >> pal_cast ;
Q = insertaAVL(Q,pal_cast,pal_ingles, &k);
k = 0;
}
archivo.close();
return(0);
}
/*
char ss[34] = " es el próximo número a insertar";
k = 0 ;
for ( i = 0 ; i < 14; i++) // numero de datos a insertar
{
j = rand()%90 + 10 ; // genera número añeatorio
itoa(j,s,10); // transforma número a string
strcat(s,ss); // concatena con frase
TextOut(hDC,100,400,s,35); // escribe en la ventana
PausaPorUnTiempo(2);
Q = insertaAVL(Q,j,&k ); // se inserta al azar ...
k = 0 ;
GmuestraAVL(hDC,Q,1,360,310,360);
PausaPorUnTiempo(2);
}
borraAVL(Q);
TextOut(hDC,100,440," Terminé ",11);
*/
atte a ud mauricio...cualquier ayuda me sirve ...muchas gracias
aca les mando el codigo para que vean en que puede estar fallando y me den una manito..es el algoritmo de un arbol AVL y me tira un solo error al compilar
// libreria.mia libreria.h
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <iomanip.h>
#include <iostream.h>
#include <fstream.h>
#include <conio.c>
#define FALSE 0
#define TRUE 1
typedef struct _AVL
{
char esp[40], ing[40];
struct _AVL *izq, *der;
int balance;
} AVL ;
char s[55];
//
// prototipos
//
//int vacia(AVL);
AVL *insertaAVL( *AVL ,char ,char ,int);
//void GmuestraAVL(AVL ,int,int,int,int );
//void Principal ( HDC );
//
// AVL
//
int vacia(AVL *p)
{ return p == NULL ;
}
void borraAVL(AVL *t) // borra todo el arbol ....
{
if ( t != NULL )
{
borraAVL(t->izq);
borraAVL(t->der);
delete t ;
}
}
/*
void BorraLaVentana(HDC h)
{
HBRUSH hBrush;
hBrush = CreateSolidBrush(RGB(rand()%256,rand()%256,rand()%256));
RECT rect = {0,0,ancho,alto}; // 744 y 575 son el tamaño de la ventana
FillRect(h, &rect, hBrush); //rellena un rectangulo con el color
}
*/
AVL *insertaAVL( AVL *p, char espa[], char ingl[], int *bandera)
{
AVL *q, *r, *p2 ;
if (vacia(p))
{ // llego a una hoja
q = new AVL ;
if ( q == NULL )
{
cout << " se acabo la memoria ..." << endl;
return NULL ;
}
strcpy(q->esp,espa); strcpy(q->ing,ingl); q->balance = 0 ; q->izq = q->der = NULL ;
*bandera = TRUE;
return q;
} // fin de vacio
else if ( strcmp (espa,p->esp)<0)
{ // inserte a la izquierda
p->izq = insertaAVL(p->izq, espa, ingl, &bandera);
if ( *bandera ) // es verdadera
switch ( p->balance )
{
case 1 : p->balance = 0 ; *bandera = FALSE ; break;
case 0 : p->balance = -1 ; break ;
case -1: // rebalanceo
r = p->izq;
if ( r->balance == -1 ) // rotacion LL
{
p->izq = p->der; r-> der = p;
p->balance = 0 ; p = r ;
}
else // rotacion LR
{
p2 = r->der ;
r->der = p2->izq; p2->izq = r;
p->izq = p2->der; p2->der = p ;
if (p2->balance == -1) p->balance = 1 ;
else p->balance = 0 ;
if (p2->balance == 1) r->balance = -1 ;
else r->balance = 0 ;
p = p2 ;
}
p->balance = 0 ; *bandera = FALSE ;
} // fin del switch
}
else if ( strcmp(espa,p->esp)>0 )
{ // inserta a la derecha
p->der = insertaAVL(p->der, espa, ingl,&bandera);
if ( *bandera ) // es verdadera
switch ( p->balance )
{
case -1 : p->balance = 0 ;
*bandera = FALSE ;
break;
case 0 : p->balance = 1 ;
break ;
case 1 : // rebalanceo
r = p->der;
if ( r->balance == 1 ) // rotacion RR
{
p->der= r->izq; r-> izq = p;
p->balance = 0 ; p = r ;
}
else // rotacion RL
{
p2 = r->izq;
r->izq = p2->der; p2->der = r;
p->der = p2->izq; p2->izq = p ;
if (p2->balance == 1)
p->balance = -1 ;
else
p->balance = 0 ;
if (p2->balance == -1)
r->balance = 1 ;
else
r->balance = 0 ;
p = p2 ;
}
p->balance = 0 ; *bandera = FALSE ;
} // fin del switch
}
return p;
}
/* -----------------------------------
BUSCADOR
-----------------------------------
*/
/*
char buscar (AVL *p, char espa)
{ int comp;
char tmp[42]='_';
if (p==NULL)
{ strcat(tmp,espa);
strcat(tmp,'_');
return tmp;
}
comp = strcmp (espa,p->esp);
if (comp==0)
return (p->ing);
else if (comp <0)
{ tmp=buscar(p->izq,espa);
return tmp;
}
else
{ tmp= buscar(p->der,espa);
return tmp;
}
}
*/
////////////////////////////// llenado del arbol desde el archivaldo
//
int Principal ( HDC hDC )
{
AVL *Q = NULL ;
int i,j,k;
char *pal_ingles, *pal_cast;
pal_ingles = new char[40];
pal_cast = new char[40];
ifstream archivo;
archivo.open("dicc.txt");
while (archivo.fail())
{
archivo >> pal_ingles >> pal_cast ;
Q = insertaAVL(Q,pal_cast,pal_ingles, &k);
k = 0;
}
archivo.close();
return(0);
}
/*
char ss[34] = " es el próximo número a insertar";
k = 0 ;
for ( i = 0 ; i < 14; i++) // numero de datos a insertar
{
j = rand()%90 + 10 ; // genera número añeatorio
itoa(j,s,10); // transforma número a string
strcat(s,ss); // concatena con frase
TextOut(hDC,100,400,s,35); // escribe en la ventana
PausaPorUnTiempo(2);
Q = insertaAVL(Q,j,&k ); // se inserta al azar ...
k = 0 ;
GmuestraAVL(hDC,Q,1,360,310,360);
PausaPorUnTiempo(2);
}
borraAVL(Q);
TextOut(hDC,100,440," Terminé ",11);
*/
atte a ud mauricio...cualquier ayuda me sirve ...muchas gracias
