Colas

Jules
29 de Mayo del 2004
Estoy haciendo una agenda en visual c++ con colas, pero no se como borrar un determinado contacto. Si alguien me pudiera ayudar le estaria muy agradecido.

xnomad
29 de Mayo del 2004
Usa dos punteros, uno que avance y otro que registre el contacto anterior en el que estuvo el primero. Cuando el primero llegue al contacto que queres borrar, el segundo apuentará al contacto anterior a éste.
Tenes que hacer que el apuntador al siguiente del segundo, apuente al siguiente del primero. y despues liberar la memoria del contacte que borras. asi no perdes el resto de la cola.

digamos que tenes la siguiente cola:
1->2->3->4->5->6->7->8->9->nil
y queres borrar el 6, teniendo punteros act y ant
entonces act va a apuntar a 6 y ant a 5
ant->siguiente = act->siguiente hara que la cola quede:
1->2->3->4->5->7->8->9->nil
y despues destruis 6