Lista enlazada individualmente. Orden inverso. Sin recursividad.
Se puede hacer.
Una lista individualmente vinculada apunta solo hacia adelante y, por lo tanto, hacer algo a la inversa no es eficiente en absoluto. Es por eso que se desarrollaron listas doblemente vinculadas. Probablemente puede hacer esto de muchas maneras y puede ser más eficiente de lo que le voy a decir.
- ¿Estoy perdiendo el tiempo implementando la estructura de datos elementales (Stacks, Queues y LinkedLists) como parte de la preparación para una entrevista de prácticas en Google?
- Cómo guardar un árbol binario en una matriz de recorrido en orden
- ¿Podemos implementar la estructura de datos de la cola usando la estructura de datos de la pila?
- ¿Cómo se puede implementar un algoritmo de ordenación rápida en el cálculo Lambda?
- ¿Es posible usar los poderes de una matriz de adyacencia para calcular las rutas más cortas que BFS calcularía?
Puede recorrer la lista e imprimir los valores, si sabe cuántos elementos hay en la lista. A continuación se explica cómo:
bool reverse (lista enlazada, longitud) {
si longitud == 0
falso retorno;
temp = longitud;
para i = 1: longitud {
lista-enlazada = cabeza;
para j = 1: temp {
lista-enlazada = lista-enlazada-> siguiente;
// bucle hasta llegar al final
}
imprimir (lista enlazada-> datos);
temperatura-;
}
volver verdadero;
}
Primero iteraremos por n veces. Dentro de cada bucle comenzaremos desde el principio de la lista e iremos a la posición señalada por temp. Imprima el valor en esa ubicación y disminuya el contador. Este enfoque de bucle anidado tiene complejidad O (n ^ 2).
Espero eso ayude.
Feliz codificación !!