Progetta le operazioni con i pulsanti avanti e indietro di un browser

4

Se ti è stato chiesto di progettare il funzionamento del pulsante avanti e indietro (come una libreria) in un browser, come lo faresti? Quali saranno le vostre API e parametri per loro? quale struttura dati sarà più adatta per questo caso?

    
posta Kevindra 08.12.2012 - 14:03
fonte

2 risposte

8

La soluzione più semplice sarebbe utilizzare due stack (indietro, avanti).

Facendo clic sul pulsante Indietro, si aprirà il back stack e si sposterà la pagina corrente sullo stack in avanti (e si andrà al valore popped nello stack posteriore).

Facendo clic su qualsiasi link su una pagina (seguendo un link) si cancellerà lo stack in avanti e si sposterà la pagina corrente sul back stack.

Facendo clic sul pulsante di inoltro si aprirà lo stack in avanti e si sposterà la pagina corrente sul back stack (e si andrà al valore popped nello stack in avanti).

I pulsanti Indietro e Avanti sono disabilitati quando lo stack appropriato è vuoto.

    
risposta data 08.12.2012 - 14:26
fonte
1

Vorrei utilizzare un array contenente urls, con una variabile che memorizza la lunghezza e un indice che punta all'elemento corrente che viene visualizzato.

Indietro decrementa l'indice, Inoltra incrementa l'indice. Nuova pagina incrementa l'indice, memorizza l'url in quel punto dell'array e imposta la lunghezza sul valore dell'indice.

Quando l'array è pieno, utilizzerei un realloc() per richiedere più memoria o implementare un accesso anulare all'array, a seconda dei vincoli di memoria.

    
risposta data 08.12.2012 - 14:29
fonte

Leggi altre domande sui tag