Advertisement
santiagol26

cuantos arboles diferentes hay

Oct 22nd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.47 KB | None | 0 0
  1. package holaM;
  2.  
  3. import java.util.Scanner;
  4. // Titulo: comparar cuantos arboles iguales hay.
  5. public class TreeBS{
  6.     NodoArbol raiz;
  7.     String palabras="";
  8.     public TreeBS(){
  9.         raiz=null;
  10.     }
  11.     public class NodoArbol{
  12.         int dato;  
  13.         NodoArbol izquierdo,derecho;
  14.         public  NodoArbol (int dat){
  15.         this.dato=dat; 
  16.         }  
  17.     }  
  18.      public void insertar(int dato){
  19.          NodoArbol nuevo= new NodoArbol(dato);  
  20.          if (raiz==null){
  21.              raiz=nuevo;
  22.          } else {
  23.              NodoArbol auxiliar=raiz;
  24.              NodoArbol padre;
  25.              while(true){
  26.                 padre=auxiliar; //el padre del nodo actual va ser el nodo temporal
  27.                 if (dato<=auxiliar.dato ){
  28.                     auxiliar=auxiliar.izquierdo;
  29.                     if (auxiliar==null ){
  30.                         padre.izquierdo=nuevo;
  31.                         return;}
  32.                 }   else {
  33.                      auxiliar=auxiliar.derecho;
  34.                      if (auxiliar==null ){
  35.                         padre.derecho=nuevo;
  36.                      return;}
  37.                  }
  38.              }
  39.           }
  40.      }
  41.         public void recorridopreorden(NodoArbol x){  //recorrido Preorder
  42.             if (x==null){
  43.                 //System.out.print("n");
  44.                 palabras.concat("n"); }
  45.             if (x!=null){
  46.                 palabras=palabras.concat("d");
  47.                 //System.out.print("d");
  48.                 recorridopreorden(x.izquierdo);
  49.                 recorridopreorden(x.derecho);  
  50.             } palabras=palabras.concat("a");
  51.         }
  52.         public String devPalabra(){
  53.             return palabras;
  54.         }
  55.     public static void main(String[] args){
  56.         String palabra="";
  57.         int count=0;
  58.         Scanner tec=new Scanner (System.in);
  59.         //System.out.println("Digite el numero de arboles y su numero de nodos: ");
  60.          int arboles=tec.nextInt();
  61.          int nodos=tec.nextInt();
  62.          String arryP[]=new String[arboles];
  63.          for (int i=0;i<arboles; i++){
  64.              TreeBS arbol=new TreeBS();
  65.              for (int j=0;j<nodos; j++){
  66.               int x=tec.nextInt();
  67.               arbol.insertar(x);
  68.              }
  69.              arbol.recorridopreorden(arbol.raiz);
  70.              //System.out.println();
  71.              //System.out.println(arbol.devPalabra());
  72.              palabra=palabra.concat(arbol.devPalabra());
  73.              palabra=palabra.concat(" ");
  74.          }
  75.          arryP=palabra.split(" ");        
  76.          for (int i=0;i<arboles;i++) {
  77.              for (int j=i+1;j<arboles;j++){
  78.                  if(arryP[j].equals(arryP[i])) {                   
  79.                     count=count+1;
  80.                     arryP[i]="";
  81.                  }
  82.                  System.out.print("-"+j);
  83.              }
  84.              System.out.print("."+i);
  85.          }arryP=palabra.split(" ");
  86.          System.out.println("*"+(arboles-count));
  87.          tec.close();
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement