Pregunta

Estoy escribiendo un navegador de archivos QML. Ahora, quiero implementar un espalda y delantero función. Esta función es similar a la funcionalidad del navegador y hacia adelante. Ejemplo :

Comienzo en "/home/text/carpeta1" y exploro a "/home/text/carper1/src". Ahora busco "/home/text/carpet1/src/java". Si presiono dos veces, debería estar en "/Home/Text/Folder1", y no puedo presionar más (el botón debe estar atenuado o de alguna otra manera indicar que no hay más elementos "anteriores" que se muestren ).

Estaba pensando en implementar esto a través de una lista doble vinculada. Sin embargo, tengo problemas para comprender dónde debo insertar nuevos elementos en la lista y cuándo debo hacerlo.

Tome el ejemplo anterior: si en lugar de presionar dos veces, presiono solo una vez (ahora estoy en "/home/text/carpeta1/src"). Si de repente voy a "/home/text/carpeta2", ¿qué ahora? ¿Cómo debería ser mi lista de doble vinculación ahora?

Esta es una pregunta de datos de datos, y no de implementación, por lo que no se requiere código.

¿Fue útil?

Solución

Creo que su idea con una lista de LinkedSist es un buen punto para comenzar. Si ingresa un nuevo directorio, agrega el nuevo elemento después del elemento actual, desechando la cola de la lista vinculada.

Suponga que estábamos en las carpetas 1,2,3 (es decir, tenemos la lista 1->2->[3], soportes cuadrados que indican el nodo de corriente). Ahora volvemos dos veces, lo que resulta en [1]->2->3 Si ahora vamos a una nueva carpeta 4, obtenemos 1->[4], entonces hemos descartado el 2->3 parte.

Otros consejos

Tendría una pila, en lugar de una lista. Cada navegación hacia adelante pone un enlace en la pila; Cada vez que regresa, elimina el artículo de la pila.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top