In realtà quello che voglio sapere non è come implementare l'algoritmo di attraversamento in ordine per un BST, ma per la sua attuazione solo con l'inserimento, cancellazione e algoritmi di attraversamento di pre-ordine per un BST.
Si può supporre che si sono date le implementazioni per algoritmi BST standard per l'inserimento, la cancellazione e pre-ordine di attraversamento.
come implementare BST ordine simmetrico?
fonte dall'utente Tharindu Rusira
In altre lingue...
Hmmm ... Diciamo che abbiamo + alla radice e 1 al nodo a sinistra e 2 al nodo a destra. Il pre-ordine sarà + 1 2e in ordine verrà 1 + 2.. La differenza è che il 1 ° e 2 ° sono stati scambiati, quindi se avete inserimento e la cancellazione è possibile scambiare in modo ricorsivo ogni valore nodo principale con il suo valore di nodo di sinistra e quindi utilizzando il pre-ordine attraversare l'albero che restituirà causerà un attraversamento in ordine simmetrico.
Non sono sicuro se questa è la strada da percorrere, ma spero che aiuta.
Credo di aver trovato una soluzione. :)
abbiamo trasversali, inserimento e cancellazione metodi pre-order.
Supponiamo che ci viene dato un BST.
ciò che facciamo è, mettiamo a disposizione il metodo di attraversamento pre-ordine con il dato BST. dal pre-ordine di attraversamento vanno sempre al nodo genitore primo luogo, eliminazione e inserimento ciascuna radice (perché la radice è il primo genitore si incontra) nodo ricorsivo finché il sub albero sinistro della radice è nullo.
Ora si inizia eliminando la radice fino a quando c'è nessun nodo left.Put quei nodi eliminati in un array o dove vuoi. Si otterrà l'insieme ordinato di nodi. (Vale a dire i nodi verranno eliminati in un order.the ordinato più piccolo prima e così via ...)