Ho la seguente domanda, ma non ho una risposta per questo. Gradirei se il mio metodo è corretto:
Q. Quando si cerca il valore chiave 60 in un albero di ricerca binario, i nodi contenenti i valori chiave 10, 20, 40, 50, 70, 80, 90 vengono attraversati, non necessariamente nell'ordine indicato. Quanti ordini diversi sono possibili in cui questi valori chiave possono verificarsi sul percorso di ricerca dal nodo radice contenente il valore 60?
(A) 35 (B) 64 (C) 128 (D) 5040
Dalla domanda, capisco che tutti i nodi dati devono essere inclusi in attraversamento e alla fine dobbiamo raggiungere la chiave, 60. Ad esempio, una tale combinazione sarebbe:
10, 20, 40, 50, 90, 80, 70, 60.
Poiché dobbiamo attraversare tutti i nodi indicati sopra, dobbiamo iniziare con 10 o 90. Se iniziamo con 20, non raggiungeremo 10 (poiché 60> 20 e attraverseremo la sottostruttura destra di 20)
Allo stesso modo, non possiamo iniziare con 80, perché non saremo in grado di raggiungere 90, poiché 80> 60, attraverseremo il sottoalbero sinistro di 80 e quindi non raggiungeremo 90.
Consente di prendere 10. I nodi rimanenti sono 20, 40, 50, 70, 80, 90. Il nodo successivo può essere 20 o 90. Non è possibile prendere altri nodi per lo stesso motivo menzionato in precedenza.
Se consideriamo in modo simile, ad ogni livello abbiamo due scelte. Poiché ci sono 7 nodi, due scelte per i primi 6 e nessuna scelta per l'ultimo. Quindi ci sono totalmente
permutazioni = =
Questa è una risposta corretta?
In caso contrario, qual è l'approccio migliore?
Vorrei generalizzare. Se vengono forniti nodi, i percorsi di ricerca possibili totali sarebbero2 n - 1