necesito ayuda con listas enlazadas ordenadas en c++
necesito saber como eliminar nodos en listas enlazadas ordenadas en c++(necesito usar una funcion creada por mi), pero sin usar clases
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 ....
si puedes consultar en los libros de estructuras de datos, ahi viene hasta codificado los algoritmos de eliminar nodos ....
// 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
// 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
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
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
