Advertisement
Jurado001

TP05_Arbol

Oct 24th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.93 KB | None | 0 0
  1. public class Arbol<E> {
  2.     private Node raiz;
  3.     private int NodeCount;
  4.    
  5.     public Node getRaiz() {
  6.         return raiz;
  7.     }
  8.  
  9.     public void setRaiz(Node raiz) {
  10.         this.raiz = raiz;
  11.     }
  12.    
  13.     public boolean isEmpty() {
  14.         return this.raiz == null;
  15.     }
  16.    
  17.     public Arbol(Node raiz) {
  18.         this.raiz = raiz;
  19.     }
  20.    
  21.     public Arbol(E item) {
  22.         this.raiz = new Node(item);
  23.     }
  24.    
  25.     public Arbol(E item, Arbol<E> ramaIzq, Arbol<E> ramaDer) {
  26.         this.raiz = new Node(item);
  27.         if(ramaIzq != null) {
  28.             this.raiz.Izq = ramaIzq.raiz;
  29.         }
  30.         if(ramaDer != null) {
  31.             this.raiz.Der = ramaDer.raiz;
  32.         }
  33.     }
  34.    
  35.     public String toString() {
  36.         return toString(this.raiz);
  37.     }
  38.    
  39.     public String toString(Node raiz) {
  40.         StringBuilder sb = new StringBuilder();
  41.         if(raiz != null) {
  42.             sb.append(raiz.item.toString());
  43.             if( raiz.Izq != null) {
  44.                 sb.append("("+toString(raiz.Izq));
  45.                 if(raiz.Der != null) {
  46.                     sb.append(","+toString(raiz.Der));
  47.                 }
  48.                 else
  49.                     sb.append(",");
  50.                 sb.append(")");
  51.             }
  52.             else {
  53.                 if(raiz.Der != null) {
  54.                     sb.append("(,"+toString(raiz.Der)+")");
  55.                 }
  56.             }
  57.         }
  58.         return sb.toString();
  59.     }
  60.    
  61.     public int MaxLevel() {
  62.         if(!isEmpty()) {
  63.             return MaxLevel(this.raiz);
  64.         }
  65.         else
  66.             return -1;
  67.     }
  68.    
  69.     private int MaxLevel(Node raiz) {
  70.         if(raiz != null) {
  71.             if((raiz.Izq != null)||(raiz.Der != null)) {
  72.                 int leftLevel = MaxLevel(raiz.Izq);
  73.                 int rightLevel = MaxLevel(raiz.Der);
  74.                 return 1+Math.max(leftLevel, rightLevel);
  75.             }
  76.         }
  77.         return 0;
  78.     }
  79.    
  80.    
  81.     private class Node {
  82.         public E item;
  83.         public Node Izq;
  84.         public Node Der;
  85.        
  86.         public E getItem() {
  87.             return item;
  88.         }
  89.         public void setItem(E item) {
  90.             this.item = item;
  91.         }
  92.        
  93.         public Node() {
  94.             this.item = null;
  95.             this.Izq = this.Der = null;
  96.         }
  97.        
  98.         public Node(E item) {
  99.             this.item = item;
  100.             this.Der = this.Izq = null;
  101.         }
  102.        
  103.         public void Visit() {
  104.             System.out.print(this.item.toString()+" ");
  105.         }  
  106.     }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement