December 8
Un albero binario è uno dei modi di dati è organizzata in un computer. Si tratta di una raccolta di "record" disposti in modo specifico che rende i record di facile accesso. L'albero binario ha un punto di ingresso --- la radice, che è l'indirizzo di un record. Un record può contenere qualsiasi informazione, ma se è un albero binario, esso conterrà sempre due indirizzi ad altri record in memoria. Idealmente, i due indirizzi nella radice saranno l'inizio di percorsi allo stesso numero di record. In altre parole, l'albero sarà simmetrica.
1 Definire alcuni termini di base in modo che possiamo descrivere cosa significhi per un albero per essere simmetrica. I nodi terminali in un albero sono chiamati le foglie. Nel record foglia, entrambi gli indirizzi sono vuote. Gli indirizzi di nodi interni hanno indirizzi di altri dischi e diciamo che questi indirizzi "puntare al sottoalberi sinistro e destro". Un percorso è quello che otteniamo se seguiamo i link degli indirizzi da un nodo ad una foglia. Il più lungo percorso --- maggior numero di record --- da un nodo è la profondità dell'albero che inizia con quel nodo.
2 Scrivere la funzione che esamina ogni nodo in un albero e trova la profondità delle sottostrutture. Il modo standard per definire la simmetria di un albero binario è "un albero binario è simmetrica se le profondità delle sottoalberi di qualsiasi nodo differiscono di non più di uno." La funzione di profondità può essere descritto utilizzando tre casi: La profondità da record di X è pari a zero se gli indirizzi di entrambe le sottostrutture sono vuoti. Se solo indirizzo è vuota, la profondità è quella più la profondità dell'altro sottostruttura. Se nessuno dei due indirizzi è vuoto, la profondità è uno più le profondità massime dei due sottostrutture.
3 Utilizzare la funzione di profondità di scrivere la funzione che indica se un albero è simmetrica. Inizia alla radice dell'albero e trovare la profondità di ogni sottostruttura. Chiamare le profondità D1 e D2. Se d1 = d2, o D1 = D2 + 1 o D2 = d1 + 1, quindi impostare la variabile s "true"; altrimenti rendere s "false". restituire il valore di s come valore della funzione di simmetria-test. In ogni fase del controllo di simmetria esaminare il rendimento della simmetria prova del sottoalberi sinistro e destro. Se entrambi sono simmetriche, restituire il valore "vero". Il valore finale che viene restituito dal nodo descriverà la simmetria della struttura.