TDA Cola con puntero al primer elemento III

TDA Cola con puntero al primer elemento III

Éste artículo lo vamos a dedicar a aprender cómo sacar un elemento de un tipo de datos abstracto cola con el puntero apuntando al primer elemento. Es una estructura de datos en c que ya venimos tratando desde hace ya algunas semanas en los artículos: cola con puntero al primer elemento y cola con puntero al primer elemento I.

Como siempre, esto es una propuesta particular, lo más sencilla posible, y cuyo objetivo es didáctico. Mostramos el código a continuación. Después daré una breve explicación de cómo funciona:

void c_int_saca ( c_int *c, struct c_int_ele *e ) {

	c_int viejo;
	
	if ( !*c ) {
		fprintf ( stderr, "c_int_saca: La cola está vacía\n" );
		exit (1);
	}
	
	viejo = *c;
	*e = viejo->val;
	*c = viejo->sig;
	
	free ( viejo );

}

Usaremos una variable auxiliar que apunte al elemento que tratamos de sacar de la estructura y eliminarlo liberando la memoria que ocupa.

Lo primero que tenemos que comprobar es si la cola está vacía, en cuyo caso no tenemos nada que hacer, sólo salir del procedimiento.

Si ocurre que el tipo de datos abstracto si tiene elementos, lo único que haremos es actualizar los punteros, de forma que podamos aislar el elemento a eliminar, actualizar igualmente la cola y llamar al procedimiento free para liberar la memoria que ocupa el nodo.

Con esto, ya hemos finalizado el procedimiento.

No Comments

Post a Comment