Advertisement
VSS2

Tree.java

Mar 15th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.57 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. class Main {
  4.         static void main(String[] args) {
  5.             int num = 0;
  6.             Scanner in = new Scanner (System.in);
  7.             Arvore binaria = new Arvore();
  8.             while(in.hasNext()){
  9.                 num = in.nextInt();
  10.                 binaria.inserirArvore(num);
  11.             }
  12.             binaria.printarArvore(binaria);
  13.     }
  14. }
  15.  
  16. class Arvore{
  17.       Arvore esq;
  18.       Arvore dir;
  19.       int numero;
  20.        
  21.         Arvore() {
  22.             this.dir = null;
  23.             this.esq = null;
  24.             this.numero = 0;
  25.         }
  26.        
  27.         Arvore(int inserido) {
  28.             this.dir = null;
  29.             this.esq = null;
  30.             this.numero = numero;
  31.         }
  32.        
  33.         Arvore inserirArvore(int inserido) {
  34.             // Novo ramo pra armazenar o novo valor
  35.             Arvore ramo = new Arvore(inserido);
  36.  
  37.             // 3 Casos: Arvore vazia (cria a raiz), valor menor que esq e valor maior que dir
  38.  
  39.             if (this.numero == 0) {
  40.                 Arvore raiz = new Arvore(inserido);
  41.             } else if (inserido < this.numero) {
  42.  
  43.                 // Se o cara é menor que o atual
  44.                 if (inserido < this.numero) {
  45.                     this.esq = ramo;
  46.                 } else {
  47.  
  48.                 // Ele é menor que o atual, que deve ser realocado
  49.                     this.esq.inserirArvore(inserido);
  50.                 }
  51.             } else {
  52.  
  53.                 // O direito pode estar vazio, verifique isso
  54.                 if (this.dir == null) {
  55.                     this.dir = ramo;
  56.                 } else {
  57.                     this.dir.inserirArvore(inserido);
  58.                 }
  59.             }
  60.             return ramo;
  61.         }
  62.        
  63.         void printarArvore(Arvore binaria) {
  64.             if (binaria.esq != null){
  65.                 printarArvore(binaria.esq);
  66.             } else {
  67.                 System.out.println(binaria.esq);
  68.             }
  69.             if (binaria.dir != null) {
  70.                 printarArvore(binaria.dir);
  71.             } else {
  72.                 System.out.println(binaria.dir);
  73.             }
  74.       }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement