Traversal grafico modificato

1

Questa domanda è più facile da descrivere come una modifica di che la mia domanda .

Supponi che la domanda sia risolta come la seguente classe Python:

class Traversal(object):
    # ...

    def next(self): # next node of the graph
        # ...

Ora voglio modificare l'algoritmo: A volte voglio attraversare il prossimo non -preferred node.

class Traversal(object):
    # ...

    def next(self): # next node of the graph
        # ...

    def next2(self): # next non-preferred node of the graph
        # ...

Come modificare l'algoritmo per implementare next2() ?

Si noti che sia next() che next2() restituiscono un nodo grafico e questo nodo deve essere registrato per non essere nuovamente attraversato.

Spiacente, non posso descrivere il vero esempio in cui appare questo problema, sarebbe troppo prolisso. Puoi vedere il link per il grosso problema che sto risolvendo.

    
posta porton 30.04.2018 - 14:45
fonte

1 risposta

2

Sembra che abbia trovato una buona soluzione del mio problema:

Poiché abbiamo solo due priorità: "preferito" e "non preferito", la coda di priorità può essere facilmente implementata come due code: "preferito" e "non preferito". Nel consueto ordine di traverso ( next() ), cercheremo prima in preferito e poi se è una coda non preferita vuota. Se abbiamo bisogno dell'ordine di traversamento di next2() , cerca invece solo nella coda non preferita.

    
risposta data 30.04.2018 - 16:00
fonte

Leggi altre domande sui tag