TDA Lista de enteros X

TDA Lista de enteros X

En éste artículo vamos a abordar la penúltima parte de éste tutorial de lista dinámica de enteros. Vamos a ver cómo se implementan dos funciones auxiliares para devolver el nodo marcado en la lista.

En el primer procedimiento marca el nodo que ocupa la posición indice.

void l_marc ( lista c, int indice ) {
	
	if (!c) {
		fprintf (stderr, "l_marc: la lista no existe\n" );
		exit (1);
	}
	
	
	if (indice>0 &amp;&amp; indice <= c->tam) {
		c->nodo = c->prim;
		c->indnodo = indice--;
		while (indice>0) {
			indice--;
			c->nodo = c->nodo->sig;
		}
	}
	
	else {
		fprintf (stderr, "l_marc: fuera de indices\n");
		exit (1);
	}
	
}

En ésta segunda función, devolverá el valor 0 si el elemento marcado ocupa la posición indice.

int l_marcado ( lista c, int indice ) {
	
	if (!c) {
		fprintf (stderr, "lista_marcado: la lista no existe\n" );
		exit (1);
	}
	
	return (c->indnodo==indice);
	
}

Como siempre acabo éste artículo invitando a mis lectores a darme su opinión sobre el código o a proponer códigos alternativos.

1 Comment

Post a Comment