Nwlapcug.com


Come rimuovere albero binario in Java

I programmatori utilizzano Java per sviluppare una serie di applicazioni desktop e Web a causa della sua portabilità multipiattaforma e sua fondazione costruito su concetti di programmazione orientata agli oggetti. Java consente ai programmatori di creare e modificare strutture di dati complesse su quasi tutti i sistemi. Un programmatore potrebbe, ad esempio, creare e utilizzare una struttura ad albero binario per memorizzare i dati utente durante l'esecuzione del programma. Tuttavia, il programmatore potrebbe voler eliminare l'albero binario, nel qual caso lei potrebbe eliminare ogni nodo, uno per uno.

Istruzioni

1

Sviluppare l'algoritmo di eliminazione in una classe di albero binario. Se un programmatore sviluppa un albero binario, puo ' creare un algoritmo di cancellazione per cancellare tutti i dati su tutti i nodi presenti. Il contorno per una classe di albero binario che include una funzione di cancellazione sarà simile a questo esempio:

Class BinaryTree {

privato nodo di sinistra;
privato nodo giusto;

public void Add () {
Aggiungi elemento
}

public nodo Cerca (int item) {
cercare la voce
}

public nodo GetRoot () {
nodo radice ritorno
}

Public Sub clearList(Node x) () {
Elimina albero
}
}

2

Sviluppare l'algoritmo di cancellazione. Se "clearList()" rappresenta la funzione che consente di eliminare un albero binario, quindi la funzione deve andare a ciascun nodo e dichiararlo come riferimento "null", che significa la procedura di garbage collection Java può eliminarlo. Nell'esempio seguente viene illustrato come eseguire questa operazione utilizzando un attraversamento post-ordine, che in modo ricorsivo visite ogni nodo ed elimina entrambe sottostrutture di quel nodo prima di eliminare il nodo:

Public Sub clearList(Node x) () {

if(x == null) () {
ritorno;
}

clearList(x.left);
clearList(x.right);
x = null;

ritorno;
}

3

Chiamare la funzione di eliminazione. Per svuotare un intero albero binario, il programmatore potrebbe chiamare la funzione utilizzando il nodo radice dell'albero. Inoltre, il programmatore potrebbe eliminare alberi specifici sub dall'albero ottenendo un nodo specifico nell'albero. Assumendo "BT" rappresenta un albero binario, nell'esempio seguente viene illustrato come eseguire questa operazione:

BT.clearList(BT.search(5)); Elimina un albero sub sotto il nodo che rappresenta la "5"
BT.clearList(BT.getRoot()); eliminare l'intera struttura ad albero