Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package holaM;
- import java.util.Scanner;
- // Titulo: comparar cuantos arboles iguales hay.
- public class TreeBS{
- NodoArbol raiz;
- String palabras="";
- public TreeBS(){
- raiz=null;
- }
- public class NodoArbol{
- int dato;
- NodoArbol izquierdo,derecho;
- public NodoArbol (int dat){
- this.dato=dat;
- }
- }
- public void insertar(int dato){
- NodoArbol nuevo= new NodoArbol(dato);
- if (raiz==null){
- raiz=nuevo;
- } else {
- NodoArbol auxiliar=raiz;
- NodoArbol padre;
- while(true){
- padre=auxiliar; //el padre del nodo actual va ser el nodo temporal
- if (dato<=auxiliar.dato ){
- auxiliar=auxiliar.izquierdo;
- if (auxiliar==null ){
- padre.izquierdo=nuevo;
- return;}
- } else {
- auxiliar=auxiliar.derecho;
- if (auxiliar==null ){
- padre.derecho=nuevo;
- return;}
- }
- }
- }
- }
- public void recorridopreorden(NodoArbol x){ //recorrido Preorder
- if (x==null){
- //System.out.print("n");
- palabras.concat("n"); }
- if (x!=null){
- palabras=palabras.concat("d");
- //System.out.print("d");
- recorridopreorden(x.izquierdo);
- recorridopreorden(x.derecho);
- } palabras=palabras.concat("a");
- }
- public String devPalabra(){
- return palabras;
- }
- public static void main(String[] args){
- String palabra="";
- int count=0;
- Scanner tec=new Scanner (System.in);
- //System.out.println("Digite el numero de arboles y su numero de nodos: ");
- int arboles=tec.nextInt();
- int nodos=tec.nextInt();
- String arryP[]=new String[arboles];
- for (int i=0;i<arboles; i++){
- TreeBS arbol=new TreeBS();
- for (int j=0;j<nodos; j++){
- int x=tec.nextInt();
- arbol.insertar(x);
- }
- arbol.recorridopreorden(arbol.raiz);
- //System.out.println();
- //System.out.println(arbol.devPalabra());
- palabra=palabra.concat(arbol.devPalabra());
- palabra=palabra.concat(" ");
- }
- arryP=palabra.split(" ");
- for (int i=0;i<arboles;i++) {
- for (int j=i+1;j<arboles;j++){
- if(arryP[j].equals(arryP[i])) {
- count=count+1;
- arryP[i]="";
- }
- System.out.print("-"+j);
- }
- System.out.print("."+i);
- }arryP=palabra.split(" ");
- System.out.println("*"+(arboles-count));
- tec.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement