“Conocimientos Programación>C /C + + Programming

¿Cómo revertir una lista única Linked

2011/5/26
Es común que tenga que invertir una lista encadenada , pero puede ser difícil de hacerlo bien . Una de las soluciones más simples es para recorrer el circuito , la inversión de cada indicador . Este pseudocódigo muestra cómo realizar este proceso , mientras que el seguimiento de las variables necesarias . El pseudocódigo es lo suficientemente genérico que debe ser capaz de adaptarse a cualquier idioma que su código es pulg Instrucciones
1

Comprobar casos extremos simples. Si el puntero de cabeza es nulo, la lista está vacía y no hay trabajo que hay que hacer . Si el indicador de siguiente de la cabeza es nulo , no es sólo un elemento en la lista , por lo que invertir no hace nada.

Si la cabeza = null entonces returnif cabeza - > siguiente = null luego regresar
2

Inicializar triples : anterior , actual y siguiente . " Anterior " y "actual" debe apuntar al nodo de cabecera de la lista. " Next" debe apuntar al segundo nodo mirando el puntero en el nodo principal
pointer

prev = cabeza ; . Puntero actual = cabeza ; puntero next = cabeza - > siguiente ;
Página 3

situado junto puntero del nodo principal en null. El nodo principal se convertirá en el último nodo de la lista, así que no habrá ningún nodo después de él.

Cabeza - > siguiente = null
4

Recorrer la lista de la inversión de la dirección de los punteros . Los tres punteros inicializados antes se utilizan para realizar un seguimiento de la posición actual en la lista.

Mientras próxima ! = Null //El siguiente puntero nulo significa que hemos llegado al final de la listcurrent = siguiente //Avance el pointernext actual = actual -> siguiente //Avanzar al siguiente pointercurrent - > siguiente = prev //Punto de nodo actual al nodo anterior , revirtiendo la linkprev = corriente //Avanzar en la última pointerend mientras
5

punto la variable cabeza de la lista de nuevo la cabeza .

cabeza = corriente

C /C + + Programming
Mobile Tutorial C # Desarrollo
Cómo construir una cola de salida de una lista
Herramientas para encontrar una pérdida de memoria
Cómo criar a un entero a una potencia en C
Cómo calcular el número de elementos en una matriz C + +
Cómo quitar el exponente de un flotador en C + +
Cómo convertir un flotante al entero más cercano en Visual C
¿Qué aplicaciones utilizan Visual C
Conocimientos Informáticos © http://www.ordenador.online