ugrás a tartalomhoz

Archívum - Feb 22, 2012 - Fórum téma

Kiegyensúlyozott-e az adott bináris fa

morocztamas · 2012. Feb. 22. (Sze), 16.50
Egy bináris fáról, hogyan tudom megállapítani, hogy kiegyensúlyozott-e és aztán azzá tenni?
Eddig a forrás ilyen:
package binfa;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;

public class Binfa {
  public static void main(String[] args) throws FileNotFoundException {
    RendezettBinfa rbf2 = new RendezettBinfa();
    Scanner s = null;
    try {
      s = new Scanner (
              new BufferedReader (
                      new FileReader ("szamok.txt")));
      while (s.hasNextInt()) {
        rbf2.addElem(s.nextInt());
      }
    } finally {
      if (s != null) {
        s.close();
      }
    }
    System.out.println(rbf2.inorder());
    System.out.print("Magassága: ");
    System.out.println(rbf2.height());
    System.out.println();

    /**/
    
    RendezettBinfa rbf = new RendezettBinfa();
    rbf.addElem(4);
    rbf.addElem(2);
    rbf.addElem(1);
    rbf.addElem(3);
    rbf.addElem(6);
    rbf.addElem(5);
    rbf.addElem(7);
    System.out.println(rbf); // inorder eljárás, mert a gyökér a bal- és a jobbrészfa kiírása között van 
    System.out.print("Inorder: ");
    System.out.println(rbf.inorder());
    System.out.print("Postorder: ");
    System.out.println(rbf.postorder());
    System.out.print("Magassága: ");
    System.out.println(rbf.height());
    System.out.print("Preorder: ");
    System.out.println(rbf.preorder());
    
    /*
    Csucs cs = new Csucs(5);
    Csucs bcs = new Csucs(6);
    Csucs jcs = new Csucs(7);
    cs.addLeft(bcs);
    cs.addRight(jcs);
    System.out.println(cs); // *.toString
    cs.setElem(1);
    cs.bcs.setElem(2);
    jcs.setElem(3);
    System.out.println(cs);
    // System.out.println(jcs);
    */
  }
}
[colorer=javascript]package binfa;

public class Csucs {
protected int elem;
Csucs bcs, jcs;

public Csucs (int elem) {
this.e