コード例 #1
0
ファイル: abb.c プロジェクト: fonse451/abb
void abb_destruir_auxiliar(abb_t* arbol,nodo_t* nodo){
    if (!nodo){
        return;
    }
    abb_destruir_auxiliar(arbol,nodo->nodo_izquierdo);
    abb_destruir_auxiliar(arbol,nodo->nodo_derecho);
    borrar_nodo(arbol,nodo);
    return;
}
コード例 #2
0
ファイル: main.c プロジェクト: cpinelly/Programacion-II-UNEG
main(){

    // Apuntador al primer elemento de la lista
    Nodo* lista = NULL;

    // Pruebas para función insertar_cola
    lista = insertar_cola(lista, 7);
    lista = insertar_cola(lista, 4);
    lista = insertar_cola(lista, 12);

    // Pruebas para función insertar_tope
    lista = insertar_tope(lista, 2);
    lista = insertar_tope(lista, 5);
    lista = insertar_tope(lista, 3);

    // Pruebas para función insrtar_tope_m.
    // Nótese que se tiene una llamada más limpia e intuitiva que la de
    // insetar_tope.
    insertar_tope_m( &lista, 6);
    insertar_tope_m( &lista, 10);
    insertar_tope_m( &lista, 22);

    // Se mustra la lista creada.
    mostrar_lista(lista);

    printf("La longitud de la lista es: %d\n\n" , longitud(lista));

    borrar_nodo(&lista, 2);
    borrar_nodo(&lista, 0);

    mostrar_lista(lista);

    printf("La longitud de la lista es: %d\n\n" , longitud(lista));

    // Liberación de la lista.
    liberar_lista(&lista);

    // Si le la lista fue liberada no debe mostrarse elemento alguno.
    mostrar_lista(lista);

}
コード例 #3
0
/*
 Remove a file
 */
int fs_unlink(const char *path) {
	//logger_info(logger, "Elimino archivo:");
	//logear_path("fs_unlink", path);
	char* temp = string_from_format(path, "%s"); // no uso string_duplicate para evitar el warning de tipos.
	int err = 0;
	uint32_t bloque = 0;

	err = buscar_bloque_nodo(temp, &bloque);
	free(temp);
	if (err) {
		return -ENOENT;
	}
	err = borrar_nodo(bloque);
	if (err) {
		return err;
	}
	// marcar los bloques en el mapa de bits como vacios
	err = liberar_espacio(bloque);
	if (err) {
		return err;
	}
	return EXIT_SUCCESS;
}
コード例 #4
0
ファイル: P293.CPP プロジェクト: agudeloandres/C_Struct_Files
void main()
{
	void borrar_nodo (struct nodo **raiz,struct nodo *q,
				struct nodo *p);

	struct nodo *raiz,*p,*q;
	int n,si,encontro;
	void inorden (struct nodo *);
	void ins_der (struct nodo *p,int n);
	void ins_izq (struct nodo *p,int n);
	int lea_entero ();
	printf ("de numero\n");
	n = lea_entero();
	raiz = nodo_arbol;
	raiz->info = n;
	raiz->izq = NULL;
	raiz->der = NULL;
	printf ("de numero\n");
	n = lea_entero();
	while (n != 9999) {
		p = q = raiz;
		while (p->info != n &&  q  != NULL ) {
			p = q;
			if (n < p->info)
				q = q->izq;
			else q = q->der;
		}
		if (p->info == n)
		   printf ("numero repetido\n");
	     else if (n < p->info)
				ins_izq (p,n);
			else  ins_der (p,n);
		printf ("de numero\n");
		n = lea_entero ();
	}
	printf ("Desea retirar un nodo ? (s/n) \n");
	si = getch();
	while (si == 's') {
		printf ("\nDe nodo a retirar \n");
		n=lea_entero();
		p=raiz;
		q=NULL;
		encontro = 0;
		while (p && !encontro)
			if (p->info == n)
				encontro = 1;
			else {
					q = p;
					if (n < p->info)
						p = 	p->izq;
					else p = p->der;
				}
		if (!encontro)
			printf ("No existe\n");
		else borrar_nodo (&raiz,q,p);
		printf ("Desea retirar mas nodos? (s/n) \n");
		si = getch();
	}
	printf ("\n");
	inorden (raiz);
	printf ("\n");
}