necesito ayuda con listas enlazadas ordenadas en c++

oscar
05 de Mayo del 2004
necesito saber como eliminar nodos en listas enlazadas ordenadas en c++(necesito usar una funcion creada por mi), pero sin usar clases

kamegeist
05 de Mayo del 2004
esta bien amigo, pero que tipo de lista enlazada tienes, simple, doble, circular, circular doble, porque si hay que eliminar, se necesitarian hacer varias validaciones, sobretodo cuando son dobles, doble circular....

si puedes consultar en los libros de estructuras de datos, ahi viene hasta codificado los algoritmos de eliminar nodos ....

noel solw
05 de Mayo del 2004
// Node : estructura, cada uno de los componentes de la lista
// begin : pointer al principio de la list
// actual : pointer al Nodo a eliminar

void FirstDelete(Node *actual) // remode and delete node
{ // at the begining of list
begin = actual->next;
delete actual;
len--;
} // LINKED LIST FIRST DELETE

// anterior : enviamos el pointer a un nodo anterior

void LinkedList<T>::InnerDelete(Node<T> *anterior) // remode and delete node
{ // inside the list
Node<T> *actual = anterior->next;
anterior->next = actual->next;
anterior->next = actual->next; // no se por que hay escribir dos veces
delete actual;
len--;
} // LINKED LIST INNER DELETE


noel solw
05 de Mayo del 2004
Disculpame, en el correo anterior me olvide de borrar algunas cosas en la segundo funcion.
El programa era para una lista generica, y lo simplifique para que no te confundas.

// Node : estructura, cada uno de los componentes de la lista
// begin : pointer al principio de la list
// actual : pointer al Nodo a eliminar

void FirstDelete(Node *actual) // remode and delete node
{ // at the begining of list
begin = actual->next;
delete actual;
len--;
} // LINKED LIST FIRST DELETE

// anterior : enviamos el pointer a un nodo anterior

void InnerDelete(Node *anterior) // remode and delete node
{ // inside the list
Node *actual = anterior->next;
anterior->next = actual->next;
anterior->next = actual->next; // no se por que hay escribir dos veces
delete actual;
len--;
} // LINKED LIST INNER DELETE

len es el numero de elementos en la lista, disminuye en 1 para cada delete