Slik fjerner Binary treet i Java

Programmerere bruke Java til å utvikle en rekke web og desktop-applikasjoner på grunn av sin cross-platform portabilitet og dens fundament bygget på objektorientert programmering konsepter. Java lar programmerere å bygge og manipulere komplekse datastrukturer på nesten alle system. En programmerer kan for eksempel lage og bruke et binært trestruktur til å lagre brukerdata under gjennomføringen av programmet. Men kanskje det programer vil slette binærtreet, og da hun kunne slette hver node, en etter en.

Bruksanvisning

1 Utvikle sletting algoritme i et binært tre klasse. Hvis en programmerer utvikler et binært tre, kan hun lage en sletting algoritme for å tømme ut alle data på alle nodene til stede. Skissen for et binært tre klasse som inneholder en sletting funksjon vil ligne på dette eksemplet:

klasse BinærTre {

private Node venstre;
private Node høyre;

public void add () {
// Legger element
}

offentlig Node søk (int element) {
// Se etter element
}

offentlig Node getRoot () {
// Retur rotnoden
}

public void clearList (Node x) {
// Sletter treet
}
}

2 Utvikle algoritmen sletting. Hvis "clearList ()" representerer funksjon som vil slette et binært tre, slik at funksjonen har å gå til hver node og erklære det som en "null" referanse, noe som betyr at Java søppelrydding kan slette den. Følgende eksempel viser hvordan du skal gjøre dette ved hjelp av en post-order traversering, som rekursivt besøker hver node, og sletter både sub-trær som node før du sletter noden:

public void clearList (Node x) {

if (x == null) {
komme tilbake;
}

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

komme tilbake;
}

3 Ring slettefunksjonen. For å tømme en hel binært tre, kan programmereren kalle funksjonen med rotnoden av treet. Dessuten kan programmereren slette spesifikke sub trær fra treet ved å få en spesifikk node i treet. Forutsatt "BT" representerer et binært tre, viser følgende eksempel hvordan å oppnå dette:

BT.clearList (BT.search (5)); // Sletter en sub treet under noden som representerer "5"
BT.clearList (BT.getRoot ()); // Slette hele treet