int main(int argc, char *argv[]) { nodo *raiz; if( argc > 2 || (argc == 2 && argv[1][1] != 'r')) { // Comprobación de la sintaxis de llamada printf("Sintaxis:\n\tPara mostrar ascendentemente:\n%s\n\t" "Para mostrar descendentemente:\n%s -r\n", argv[0], argv[0]); exit(-1); } puts("Escriba varias cadenas de texto. Finalice con EOF."); raiz = crear_arbol(); // creación del árbol if(argc == 1) { puts(""); puts("Las cadenas ordenadas ascendentemente:\n"); imprimir_arbol(raiz, 'a'); } else { puts(""); puts("Las cadenas ordenadas descendentemente:\n"); imprimir_arbol(raiz, 'b'); } borrar_arbol(raiz); return 0; }
int main (int arc, char **argv) { int i,j; init_rtree(); insertar(obtener_raiz(),make_rect(1.0,3.0,2.0,2.5)); insertar(obtener_raiz(),make_rect(1.0,2.0,3.0,5.0)); insertar(obtener_raiz(),make_rect(2.0,3.0,1.0,2.0)); insertar(obtener_raiz(),make_rect(4.0,5.0,4.0,6.0)); insertar(obtener_raiz(),make_rect(4.0,6.0,3.0,6.0)); insertar(obtener_raiz(),make_rect(6.0,7.0,9.0,10.0)); insertar(obtener_raiz(),make_rect(7.0,8.0,10.0,11.0)); insertar(obtener_raiz(),make_rect(6.0,7.0,4.0,10.0)); insertar(obtener_raiz(),make_rect(9.0,9.5,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.1,9.5,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.2,9.6,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.3,9.7,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.4,9.8,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.0,9.5,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.0,9.5,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.0,9.5,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.0,9.5,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.0,9.5,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.0,9.5,5.0,10.0)); insertar(obtener_raiz(),make_rect(9.0,9.5,5.0,10.0)); imprimir_arbol(obtener_raiz(), -1, 0); Dynamic_array resultado = buscar(obtener_raiz(), make_rect(9.0,9.5,5.0,10.0)); printf("Buscar -> [%f,%f]x[%f,%f]\n", 9.0,9.5,5.0,10.0); for(j=0;j<resultado.used;j++) { printf(" Encontrado ->[%f,%f]X[%f,%f]\n", resultado.array[j].x1, resultado.array[j].x2, resultado.array[j].y1, resultado.array[j].y2); } //for(i=0;i<=rtree_ultimo;i++) // imprimir_nodo(leer_nodo(i)); //printf("--------------------------\n"); //printf("--------------------------\n"); //for (i=0;i <= rtree_ultimo; i++) //imprimir_nodo(leer_nodo(i)); return 0; // todo ok //imprimir_nodo(obtener_raiz()); //imprimir_nodo(leer_nodo(0)); //imprimir_nodo(leer_nodo(1)); //imprimir_nodo(leer_nodo(2)); return 0; // todo ok }
void imprimir_arbol(nodo *a, char orden) { //clearerr(stdin); if(a != NULL) { if(orden == 'a') { imprimir_arbol(a->izq, 'a'); puts(a->linea); imprimir_arbol(a->der, 'a'); } else { imprimir_arbol(a->der, 'b'); puts(a->linea); imprimir_arbol(a->izq,'b'); } } }
/************************************** imprimir_arbol: Imprime en consola la estructura completa de un arbol. ***************************************/ void imprimir_arbol(struct Tnodo *nodo) { static int deep = 0; static int nspaces = 1; int i, j; while (nodo != NULL) { for (i = 0; i < deep; i++) for (j = 0; j < nspaces; j++) printf ("-"); printf ("%s\n", nodo->nombre); deep++; imprimir_arbol (nodo->hijos); deep--; nodo = nodo->siguiente; } }