Supponiamo di avere un red-black tree che è una valida binary search tree e non viola nessuna di queste regole:Può esistere ogni albero rosso-nero valido?
- Un nodo è rosso o nero.
- La radice è nera.
- Tutte le foglie (NIL) sono nere.
- Entrambi i bambini di ogni nodo rosso sono neri.
- Ogni semplice percorso da un determinato nodo a una qualsiasi delle sue foglie discendenti contiene lo stesso numero di nodi neri.
Tale un albero rosso-nero sembra questo:
Vuol ogni possibile albero che soddisfa queste restrizioni hanno una sequenza di inserimenti e cancellazioni in modo che l'albero rosso-nero è generato?
Sto facendo questa domanda, perché penso di scrivere un articolo di blog su alberi di colore rosso-nero e vorrei dare alcuni esempi.
Se si desidera testare un contro-esempio: Qui è a red-black tree implementation in python con una funzione implementata per generare l'immagine.
Per chiarire la domanda: Facciamo un gioco.
- Disegno un albero rosso-nero, che soddisfa tutte le restrizioni.
- Devi trovare una sequenza di inserimenti e cancellazioni, in modo da finire con il mio albero nero rosso.
Posso disegnare un albero rosso-nero in modo da non poter vincere?
I colori sono importanti! Se l'albero ha una forma diversa o colori diversi, non è lo stesso albero rosso-nero.
Si dovrebbe almeno sapere come generare questi due rosso-nero-alberi:
Si noti che questo è solo un assegno per voi se potesse funzionare. Se sai solo come ottenere questi due alberi rosso-neri, non puoi rispondere a questa domanda!
Ho cercato di rispolverare la mia conoscenza informatica della teoria dei grafi e l'intera cosa è andata in pezzi quando l'ho toccata ... Scherzi a parte, potresti voler postare questo post su http://cstheory.stackexchange.com/ ottenere più del giusto tipo di attenzione. –