void main (void) { nodoa *raiz = NULL; int valta, vbaja, opcion; int crece; do { printf ("0.-fin 1.-alta 2.-baja opcion: "); scanf ("%d", &opcion); switch (opcion) { case 1: printf ("alta: "); scanf ("%d", &valta); altas (valta, &raiz, &crece); break; case 2: printf ("baja: "); scanf ("%d", &vbaja); bajas (vbaja, &raiz, &crece); break; }; porniveles (raiz); if (esavl (raiz)) printf ("Es avl\n"); else printf ("\a¡¡ NO ES AVL!! \n"); } while (opcion); getch (); }
void main (void) { int v[N], valta, vbaja, total = 0, opcion; clrscr (); do { printf ("0.-salir 1.-altas 2.-bajas Introduzca opción: "); scanf ("%d", &opcion); switch (opcion) { case 1: printf ("Introduzca valor alta: "); scanf ("%d", &valta); altas (v, &total, valta); break; case 2: printf ("Introduzca valor baja: "); scanf ("%d", &vbaja); bajas (v, &total, vbaja); break; } printf ("Pulse tecla...\n"); getch (); } while (opcion); }
int main() { EPersona lista[C]; char seguir='s'; int opcion=0, flag=0; inicializar(lista); while(seguir=='s') { system("cls"); opcion=menu(); switch(opcion) { case 1: altas(lista); flag=1; system("pause"); break; case 2: if(flag==1) { bajas(lista); } system("pause"); break; case 3: if(flag==1) { imprimir(lista); } system("pause"); break; case 4: if(flag==1) { grafico(lista); } printf("\n"); system("pause"); break; case 5: seguir = salir(lista); break; } } return 0; }
void bajas (int x, nodoa ** p, int *decrece) { nodoa *q; /* decrece=false */ if (*p == NULL) { printf ("no esta\n"); *decrece = 0; } else if (x < (*p)->clave) { bajas (x, &(*p)->i, decrece); if (*decrece) equilibrarizda (p, decrece); } else if (x > (*p)->clave) { bajas (x, &(*p)->d, decrece); if (*decrece) equilibrardcha (p, decrece); } else { /* Clave iguales. Borrar p^ */ q = *p; if (q->d == NULL) { /* P tiene hijo izdo y DECRECE */ *p = q->i; *decrece = 1; } else if (q->i == NULL) { /* P tiene hijo dcho y DECRECE */ *p = q->d; *decrece = 1; } else { /* P tiene 2 hijos. Le sustituye el inmediato inferior */ borra2h (&(*p)->i, &q, decrece); if (*decrece) equilibrarizda (p, decrece); } free (q); } } /* bajas */