TDA Cola puntero al primer elemento II

TDA Cola puntero al primer elemento II

En éste articulo nos dedicaremos a conocer el procedimiento que necesitamos para insertar un nuevo elemento a la cola. Puesto que ya conocemos como funciona el tipo de datos abstracto, sólo describiré como funciona el código que transcribimos a continuación:

void c_int_mete ( c_int *c, struct c_int_ele e ) {
	
	c_int nuevo, ultimo;
		
	nuevo = ( struct c_enteros_ele* ) malloc ( sizeof ( struct c_int_ele ));
		
	if ( !nuevo ) {
			
		fprintf ( stderr, "c_int_mete: no hay memoria suficiente- n"  );
		exit (1);
	}
		
	nuevo->val = e;
	nuevo->sig = NULL;
		
	if ( !*c ) *c = nuevo;
	else {
		for ( ultimo=*c; ultimo->sig; ultimo=ultimo->sig );
			ultimo->sig = nuevo;
	}
		
}

El código que mostramos es realmente sencillo. Simplemente vamos a reservar memoria para el nuevo nodo. Comprobaremos si efectivamente se ha reservado o no hay memoria suficiente, en cuyo caso salimos del procedimiento.

A continuación, actualizamos los campos de la estructura. El siguiente paso será actualizar el tipo de datos abstracto cola. Comprobamos si existen más nodos en la cola; en caso de que la cola está vacía, el nuevo nodo se situará al frente de la cola, en caso contrario, se utiliza un bucle for para llegar al final de la estructura y situar el nuevo nodo al final de la cola.

Todo muy sencillo. Esta es una versión muy sencilla y didáctica aunque, evidentemente, habrá otras versiones de éste procedimiento que os invito a compartir en éste blog.

No Comments

Post a Comment