Ir al contenido principal

Operaciones entre conjuntos: listas, pilas y colas JAVA

Crear dos Grupos los cuales almacenen (n) estudiantes los cuales deben  tener como atributos, Código, Nombre y Edad.
Se debe realizar por cada una de las siguientes estructuras de datos (listas doblemente enlazadas, pilas y colas)  las Siguientes funciones:
Unión: hacer la unión de los códigos de los estudiantes del grupo 1 y el grupo 2, imprimir solo los códigos resultantes de la unión.
Intersección: comparar entre los dos grupos de estudiantes e imprimir los estudiantes que tengan edades comunes entre los dos grupos.
Diferencia: comparar entre los dos grupos de estudiantes e imprimir los estudiantes que no tengan edad común entre los los grupos.
Pertenencia: Comparar entre los dos grupos de estudiantes e imprimir los estudiantes que pertenecen a un solo grupo.

Clase Main:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package estructuradedatos;

import estructuradedatos.listasDobles.ListaDoble;
import estructuradedatos.pilas.Pila;
import estructuradedatos.colas.Cola;

/**
 *
 * @author Usuario
 */
public class EstructuraDeDatos {

    /**
     * @param args the command line arguments
     */
    //creamos los grupos de listas dobles 
    private static ListaDoble grupoUno = new ListaDoble();
    private static ListaDoble grupoDos = new ListaDoble();
    private static ListaDoble operaciones = new ListaDoble();

    //creamos los grupos de pila
    private static Pila grupoUnoPila = new Pila();
    private static Pila grupoDosPila = new Pila();
    private static Pila operacionesPila = new Pila();

    //creamos los grupos de cola
    private static Cola grupoUnoCola = new Cola();
    private static Cola grupoDosCola = new Cola();
    private static Cola operacionesCola = new Cola();

    public static void main(String[] args) {

        //creamos los estudiantes 
        Estudiante estudiante1 = new Estudiante();
        estudiante1.setCodigo(123);
        estudiante1.setEdad(12);
        estudiante1.setNombre("camila");

        Estudiante estudiante2 = new Estudiante();
        estudiante2.setCodigo(124);
        estudiante2.setEdad(12);
        estudiante2.setNombre("maria");

        Estudiante estudiante3 = new Estudiante();
        estudiante3.setCodigo(125);
        estudiante3.setEdad(14);
        estudiante3.setNombre("oscar");

        Estudiante estudiante4 = new Estudiante();
        estudiante4.setCodigo(126);
        estudiante4.setEdad(13);
        estudiante4.setNombre("carolina");

        Estudiante estudiante5 = new Estudiante();
        estudiante5.setCodigo(127);
        estudiante5.setEdad(14);
        estudiante5.setNombre("Jhoan");

        Estudiante estudiante6 = new Estudiante();
        estudiante6.setCodigo(127);
        estudiante6.setEdad(12);
        estudiante6.setNombre("natalia");

        Estudiante estudiante7 = new Estudiante();
        estudiante7.setCodigo(128);
        estudiante7.setEdad(15);
        estudiante7.setNombre("juan");

        System.out.println("\n*********** LISTAS DOBLES **************");
        //agregamos los primeros 3 estudiantes al grupo uno listas dobles 
        grupoUno.add(estudiante1);
        grupoUno.add(estudiante2);
        grupoUno.add(estudiante3);
        grupoUno.add(estudiante7);
        System.out.println("Grupo Uno Listas dobles");
        grupoUno.imprimir();

        //agregamos los 3 ultimos estudiantes al grupo dos
        grupoDos.add(estudiante4);
        grupoDos.add(estudiante5);
        grupoDos.add(estudiante6);
        grupoDos.add(estudiante7);
        System.out.println("\nGrupo Dos Listas dobles");
        grupoDos.imprimir();

        //union
        System.out.println("\nUnion de codigos");
        System.out.println(operaciones.union(grupoUno, grupoDos));

        //interseccion
        System.out.println("\nIntersección de edades");
        System.out.println(operaciones.interseccion(grupoUno, grupoDos));

        //Diferencia
        System.out.println("\nDiferencia de edades");
        System.out.println(operaciones.diferencia(grupoUno, grupoDos));

        //Pertenencia
        System.out.println("\nPertenencia");
        System.out.println(operaciones.pertenencia(grupoUno, grupoDos));

        System.out.println("\n*********** PILAS **************");

        //ingresamos los estudiantes en el grupo uno
        grupoUnoPila.push(estudiante1);
        grupoUnoPila.push(estudiante2);
        grupoUnoPila.push(estudiante3);
        grupoUnoPila.push(estudiante7);
        System.out.println("Grupo Uno Pilas");
        grupoUnoPila.imprimir();

        //ingresamos los estudiantes en el grupo dos
        grupoDosPila.push(estudiante4);
        grupoDosPila.push(estudiante5);
        grupoDosPila.push(estudiante6);
        grupoDosPila.push(estudiante7);
        System.out.println("\nGrupo Dos Pilas");
        grupoDosPila.imprimir();

        //union
        System.out.println("\nUnion Pilas");
        System.out.println(operacionesPila.union(grupoUnoPila, grupoDosPila));

        //interseccion
        System.out.println("\nIntersección de edades Pilas");
        System.out.println(operacionesPila.interseccion(grupoUnoPila, grupoDosPila));

        //Diferencia
        System.out.println("\nDiferencia de edades Pilas");
        System.out.println(operacionesPila.diferencia(grupoUnoPila, grupoDosPila));

        //Pertenencia
        System.out.println("\nPertenencia Pilas");
        System.out.println(operacionesPila.pertenencia(grupoUnoPila, grupoDosPila));

        System.out.println("\n********* COLAS **********");

        grupoUnoCola.add(estudiante1);
        grupoUnoCola.add(estudiante2);
        grupoUnoCola.add(estudiante3);
        grupoUnoCola.add(estudiante7);
        System.out.println("Grupo uno cola");
        grupoUnoCola.imprimir();

        grupoDosCola.add(estudiante4);
        grupoDosCola.add(estudiante5);
        grupoDosCola.add(estudiante6);
        grupoDosCola.add(estudiante7);
        System.out.println("Grupo DOS cola");
        grupoDosCola.imprimir();

        //union
        System.out.println("\nUnion de codigos colas");
        System.out.println(operacionesCola.union(grupoUnoCola, grupoDosCola));

        //interseccion
        System.out.println("\nIntersección de edades Colas");
        System.out.println(operacionesCola.interseccion(grupoUnoCola, grupoDosCola));

        //Diferencia
        System.out.println("\nDiferencia de edades Colas");
        System.out.println(operacionesCola.diferencia(grupoUnoCola, grupoDosCola));

        //Pertenencia
        System.out.println("\nPertenencia Colas");
        System.out.println(operacionesCola.pertenencia(grupoUnoCola, grupoDosCola));
    }

}


Clase estudiante:

package estructuradedatos;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Usuario
 */
public class Estudiante {

    private int codigo;
    private String nombre;
    private int edad;

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

}

Clase lista doblemente enlazada:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package estructuradedatos.listasDobles;

import estructuradedatos.Estudiante;

/**
 *
 * @author Usuario
 */
public class ListaDoble {

    private Nodo raiz;

    public Nodo getRaiz() {
        return raiz;
    }

    public void setRaiz(Nodo raiz) {
        this.raiz = raiz;
    }

    public void add(Estudiante d) {
        Nodo nuevo = new Nodo(d);
        if (raiz == null) {
            raiz = nuevo;
        } else {
            if (d != null) {
                apuntarAlUltimo(nuevo);
            }
        }
    }

    public void apuntarAlUltimo(Nodo nuevo) {
        Nodo temp = raiz;
        while (temp.getSiguinte() != null) {
            temp = temp.getSiguinte();
        }
        temp.setSiguinte(nuevo);
        nuevo.setAnterior(temp);

    }

    public Nodo buscar(Estudiante o) {
        Nodo temp = raiz;
        while (temp != null) {
            if (temp.getDato() == o) {
                return temp;
            }
            temp = temp.getSiguinte();
        }
        return null;
    }

    public Boolean buscarCodigo(Estudiante o) {
        Nodo temp = raiz;
        while (temp != null) {
            if (temp.getDato().getCodigo() == o.getCodigo()) {
                return true;
            }
            temp = temp.getSiguinte();
        }
        return false;
    }

    public void imprimir() {
        Nodo temp = raiz;
        if (temp.getAnterior() == null) {

        } else {
            System.out.print(temp.getDato().getCodigo() + ", " + temp.getDato().getNombre() + ", " + temp.getDato().getEdad() + "<->");
        }
        while (temp != null) {
            System.out.print(temp.getDato().getCodigo() + ", " + temp.getDato().getNombre() + ", " + temp.getDato().getEdad() + "<->");
            temp = temp.getSiguinte();
        }
        if (temp == null) {

        }
    }

    public String imprimirUnion() {
        Nodo temp = raiz;
        String estudiantes = "";
        if (temp.getAnterior() == null) {

        } else {

        }

        while (temp != null) {
            estudiantes = estudiantes + temp.getDato().getCodigo() + " <-> ";
            temp = temp.getSiguinte();
        }

        return estudiantes;
    }

    public String imprimirInterseccion() {
        Nodo temp = raiz;
        String estudiantes = "";

        while (temp != null) {
            estudiantes = estudiantes + temp.getDato().getCodigo() + ", " + temp.getDato().getNombre() + ", " + temp.getDato().getEdad() + " <-> ";
            temp = temp.getSiguinte();
        }

        return estudiantes;
    }

    public String union(ListaDoble grupo1, ListaDoble grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        ListaDoble listaUnion = new ListaDoble();

        while (temp1 != null) {

            if (listaUnion.buscarCodigo(temp1.getDato())) {

            } else {
                listaUnion.add(temp1.getDato());
            }

            temp1 = temp1.getSiguinte();
        }
        while (temp2 != null) {

            if (listaUnion.buscarCodigo(temp2.getDato())) {
            } else {

                listaUnion.add(temp2.getDato());
            }

            temp2 = temp2.getSiguinte();
        }

        return listaUnion.imprimirUnion();

    }

    public String interseccion(ListaDoble grupo1, ListaDoble grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        ListaDoble listaInterseccion = new ListaDoble();

        while (temp1 != null) {
            while (temp2 != null) {
                if (temp1.getDato().getEdad() == temp2.getDato().getEdad()) {

                    if (listaInterseccion.buscar(temp1.getDato()) == null) {
                        listaInterseccion.add(temp1.getDato());
                    }
                    if (listaInterseccion.buscar(temp2.getDato()) == null) {
                        listaInterseccion.add(temp2.getDato());
                    }
                }
                temp2 = temp2.getSiguinte();
            }
            temp2 = grupo2.raiz;
            temp1 = temp1.getSiguinte();
        }
        return listaInterseccion.imprimirInterseccion();
    }

    public String diferencia(ListaDoble grupo1, ListaDoble grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Boolean diferente = false;
        ListaDoble listaDiferencia = new ListaDoble();

        while (temp1 != null) {
            while (temp2 != null) {
                if (temp1.getDato().getEdad() == temp2.getDato().getEdad()) {
                    diferente = true;
                }
                temp2 = temp2.getSiguinte();
            }

            if (diferente == false) {
                listaDiferencia.add(temp1.getDato());

            }
            diferente = false;
            temp2 = grupo2.raiz;
            temp1 = temp1.getSiguinte();
        }

        while (temp2 != null) {
            while (temp1 != null) {
                if (temp2.getDato().getEdad() == temp1.getDato().getEdad()) {
                    diferente = true;
                }
                temp1 = temp1.getSiguinte();
            }

            if (diferente == false) {
                listaDiferencia.add(temp2.getDato());

            }
            diferente = false;
            temp1 = grupo1.raiz;
            temp2 = temp2.getSiguinte();
        }

        return listaDiferencia.imprimirInterseccion();
    }

    public String pertenencia(ListaDoble grupo1, ListaDoble grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        ListaDoble listaPertenencia = new ListaDoble();

        while (temp1 != null) {

            if (grupo2.buscar(temp1.getDato()) == null) {
                listaPertenencia.add(temp1.getDato());
            }

            temp1 = temp1.getSiguinte();
        }

        while (temp2 != null) {

            if (grupo1.buscar(temp2.getDato()) == null) {
                listaPertenencia.add(temp2.getDato());
            }

            temp2 = temp2.getSiguinte();
        }

        return listaPertenencia.imprimirInterseccion();
    }

}

Clase Nodo lista doblemente enlazada:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package estructuradedatos.listasDobles;

import estructuradedatos.Estudiante;

/**
 *
 * @author Usuario
 */
public class Nodo {

    private Estudiante dato;
    private Nodo siguinte;
    private Nodo anterior;

    public Nodo(Estudiante dato) {
        this.dato = dato;
    }

    public Estudiante getDato() {
        return dato;
    }

    public void setDato(Estudiante dato) {
        this.dato = dato;
    }

    public Nodo getSiguinte() {
        return siguinte;
    }

    public void setSiguinte(Nodo siguinte) {
        this.siguinte = siguinte;
    }

    public Nodo getAnterior() {
        return anterior;
    }

    public void setAnterior(Nodo anterior) {
        this.anterior = anterior;
    }

}

Clase Nodo Para las Pilas:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package estructuradedatos.pilas;

import estructuradedatos.Estudiante;

/**
 *
 * @author Usuario
 */
public class Nodo {

    private Estudiante dato;
    private Nodo siguinte;

    public Nodo(Estudiante dato) {
        this.dato = dato;
    }

    public Estudiante getDato() {
        return dato;
    }

    public void setDato(Estudiante dato) {
        this.dato = dato;
    }

    public Nodo getSiguinte() {
        return siguinte;
    }

    public void setSiguinte(Nodo siguinte) {
        this.siguinte = siguinte;
    }

}



Clase Pilas:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package estructuradedatos.pilas;

import estructuradedatos.Estudiante;

/**
 *
 * @author Usuario
 */
public class Pila {

    Nodo raiz;

    public void push(Estudiante d) {
        Nodo nuevo = new Nodo(d);
        if (raiz == null) {
            raiz = nuevo;
        } else {
            if (d != null) {
                nuevo.setSiguinte(raiz);
                raiz = nuevo;
            }
        }
    }

    public void imprimir() {
        Nodo temp = raiz;
        while (temp != null) {
            System.out.print(temp.getDato().getCodigo() + ", " + temp.getDato().getNombre() + ", " + temp.getDato().getEdad() + "->");
            temp = temp.getSiguinte();
        }
    }

    public String imprimirUnion() {
        Nodo temp = raiz;
        String codigos = "";
        while (temp != null) {
            codigos = codigos + temp.getDato().getCodigo() + "->";
            temp = temp.getSiguinte();
        }

        return codigos;
    }

    public String imprimirInterseccion() {
        Nodo temp = raiz;
        String estudiantes = "";

        while (temp != null) {
            estudiantes = estudiantes + temp.getDato().getCodigo() + ", " + temp.getDato().getNombre() + ", " + temp.getDato().getEdad() + " -> ";
            temp = temp.getSiguinte();
        }

        return estudiantes;
    }

    public int pos(Estudiante o) {
        Nodo temp = raiz;
        for (int i = 1; temp != null; i++) {
            if (temp.getDato() == o) {
                return i;
            }
            temp = temp.getSiguinte();
        }
        return -1;

    }

    public Estudiante peek() {
        return raiz.getDato();
    }

    public boolean search(Estudiante o) {
        Nodo temp = raiz;
        while (temp != null) {
            if (temp.getDato() == o) {
                return true;
            }
            temp = temp.getSiguinte();
        }
        return false;
    }

    public boolean searchCodigo(Estudiante o) {
        Nodo temp = raiz;
        while (temp != null) {
            if (temp.getDato().getCodigo() == o.getCodigo()) {
                return true;
            }
            temp = temp.getSiguinte();
        }
        return false;
    }

    public boolean searchEdad(Estudiante o) {
        Nodo temp = raiz;
        while (temp != null) {
            if (temp.getDato().getEdad() == o.getEdad()) {
                return true;
            }
            temp = temp.getSiguinte();
        }
        return false;
    }

    public boolean empty() {
        return raiz == null;
    }

    public String union(Pila grupo1, Pila grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Pila pilaUnion = new Pila();

        while (temp1 != null) {

            if (pilaUnion.searchCodigo(temp1.getDato())) {

            } else {
                pilaUnion.push(temp1.getDato());
            }

            temp1 = temp1.getSiguinte();
        }
        while (temp2 != null) {

            if (pilaUnion.searchCodigo(temp2.getDato())) {
            } else {

                pilaUnion.push(temp2.getDato());
            }

            temp2 = temp2.getSiguinte();
        }

        return pilaUnion.imprimirUnion();

    }

    public String interseccion(Pila grupo1, Pila grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Pila pilaInterseccion = new Pila();

        while (temp1 != null) {
            while (temp2 != null) {
                if (temp1.getDato().getEdad() == temp2.getDato().getEdad()) {

                    if (pilaInterseccion.search(temp1.getDato()) == false) {
                        pilaInterseccion.push(temp1.getDato());
                    }
                    if (pilaInterseccion.search(temp2.getDato()) == false) {
                        pilaInterseccion.push(temp2.getDato());
                    }
                }
                temp2 = temp2.getSiguinte();
            }
            temp2 = grupo2.raiz;
            temp1 = temp1.getSiguinte();
        }
        return pilaInterseccion.imprimirInterseccion();
    }

    public String diferencia(Pila grupo1, Pila grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Boolean diferente = false;
        Pila pilaDiferencia = new Pila();

        while (temp1 != null) {
            if (grupo2.searchEdad(temp1.getDato())) {
            } else {
                pilaDiferencia.push(temp1.getDato());
            }
            temp1 = temp1.getSiguinte();
        }

        while (temp2 != null) {
            if (grupo1.searchEdad(temp2.getDato())) {
            } else {
                pilaDiferencia.push(temp2.getDato());
            }
            temp2 = temp2.getSiguinte();
        }

        return pilaDiferencia.imprimirInterseccion();
    }

    public String pertenencia(Pila grupo1, Pila grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Pila pilaPertenencia = new Pila();

        while (temp1 != null) {

            if (grupo2.search(temp1.getDato()) == false) {
                pilaPertenencia.push(temp1.getDato());
            }

            temp1 = temp1.getSiguinte();
        }

        while (temp2 != null) {

            if (grupo1.search(temp2.getDato()) == false) {
                pilaPertenencia.push(temp2.getDato());
            }

            temp2 = temp2.getSiguinte();
        }

        return pilaPertenencia.imprimirInterseccion();
    }

}


Clase Nodo para las colas:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package estructuradedatos.colas;

import estructuradedatos.Estudiante;

/**
 *
 * @author Usuario
 */
public class Nodo {
    
    private Estudiante dato;
    private Nodo siguinte;

    public Nodo(Estudiante dato) {
        this.dato = dato;
    }

    public Estudiante getDato() {
        return dato;
    }

    public void setDato(Estudiante dato) {
        this.dato = dato;
    }

    public Nodo getSiguinte() {
        return siguinte;
    }

    public void setSiguinte(Nodo siguinte) {
        this.siguinte = siguinte;
    }

    
}


Clase Cola:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package estructuradedatos.colas;

import estructuradedatos.Estudiante;

/**
 *
 * @author Usuario
 */
public class Cola {

    Nodo raiz;

    public void add(Estudiante d) {
        Nodo nuevo = new Nodo(d);
        if (raiz == null) {
            raiz = nuevo;
        } else {
            if (d != null) {
                apuntarAlUltimo(nuevo);
            }
        }
    }

    public void apuntarAlUltimo(Nodo nuevo) {
        Nodo temp = raiz;
        while (temp.getSiguinte() != null) {
            temp = temp.getSiguinte();
        }
        temp.setSiguinte(nuevo);

    }

    public Estudiante remove() {
        Nodo temp = raiz;
        raiz = raiz.getSiguinte();
        return temp.getDato();
    }

    public void imprimir() {
        Nodo temp = raiz;
        while (temp != null) {
            System.out.print(temp.getDato().getCodigo() + ", " + temp.getDato().getNombre() + ", " + temp.getDato().getEdad() + " ->");
            temp = temp.getSiguinte();
        }
    }

    public String imprimirUnion() {
        Nodo temp = raiz;
        String codigos = "";
        while (temp != null) {
            codigos = codigos + temp.getDato().getCodigo() + " -> ";
            temp = temp.getSiguinte();
        }
        return codigos;
    }

    public String imprimirInterseccion() {
        Nodo temp = raiz;
        String estudiantes = "";

        while (temp != null) {
            estudiantes = estudiantes + temp.getDato().getCodigo() + ", " + temp.getDato().getNombre() + ", " + temp.getDato().getEdad() + " -> ";
            temp = temp.getSiguinte();
        }

        return estudiantes;
    }

    public int pos(Estudiante o) {
        Nodo temp = raiz;
        for (int i = 1; temp != null; i++) {
            if (temp.getDato() == o) {
                return i;
            }
            temp = temp.getSiguinte();
        }
        return -1;

    }

    public Boolean search(Estudiante o) {
        Nodo temp = raiz;
        while (temp != null) {
            if (temp.getDato() == o) {
                return true;
            }
            temp = temp.getSiguinte();
        }
        return false;
    }

    public Boolean searchEdad(Estudiante o) {
        Nodo temp = raiz;
        while (temp != null) {
            if (temp.getDato().getEdad() == o.getEdad()) {
                return true;
            }
            temp = temp.getSiguinte();
        }
        return false;
    }

    public Boolean searchCodigo(Estudiante o) {
        Nodo temp = raiz;
        while (temp != null) {
            if (temp.getDato().getCodigo() == o.getCodigo()) {
                return true;
            }
            temp = temp.getSiguinte();
        }
        return false;
    }

    public boolean empty() {
        return raiz == null;
    }

    public String union(Cola grupo1, Cola grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Cola colaUnion = new Cola();

        while (temp1 != null) {

            if (colaUnion.searchCodigo(temp1.getDato())) {

            } else {
                colaUnion.add(temp1.getDato());
            }

            temp1 = temp1.getSiguinte();
        }
        while (temp2 != null) {

            if (colaUnion.searchCodigo(temp2.getDato())) {
            } else {

                colaUnion.add(temp2.getDato());
            }

            temp2 = temp2.getSiguinte();
        }

        return colaUnion.imprimirUnion();

    }

    public String interseccion(Cola grupo1, Cola grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Cola colaInterseccion = new Cola();

        while (temp1 != null) {
            while (temp2 != null) {
                if (temp1.getDato().getEdad() == temp2.getDato().getEdad()) {

                    if (colaInterseccion.search(temp1.getDato()) == false) {
                        colaInterseccion.add(temp1.getDato());
                    }
                    if (colaInterseccion.search(temp2.getDato()) == false) {
                        colaInterseccion.add(temp2.getDato());
                    }
                }
                temp2 = temp2.getSiguinte();
            }
            temp2 = grupo2.raiz;
            temp1 = temp1.getSiguinte();
        }
        return colaInterseccion.imprimirInterseccion();
    }

    public String diferencia(Cola grupo1, Cola grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Boolean diferente = false;
        Cola colaDiferencia = new Cola();

        while (temp1 != null) {
            if (grupo2.searchEdad(temp1.getDato())) {
            } else {
                colaDiferencia.add(temp1.getDato());
            }
            temp1 = temp1.getSiguinte();
        }

        while (temp2 != null) {
            if (grupo1.searchEdad(temp2.getDato())) {
            } else {
                colaDiferencia.add(temp2.getDato());
            }
            temp2 = temp2.getSiguinte();
        }

        return colaDiferencia.imprimirInterseccion();
    }

    public String pertenencia(Cola grupo1, Cola grupo2) {
        Nodo temp1 = grupo1.raiz;
        Nodo temp2 = grupo2.raiz;
        Cola colaPertenencia = new Cola();

        while (temp1 != null) {

            if (grupo2.search(temp1.getDato()) == false) {
                colaPertenencia.add(temp1.getDato());
            }

            temp1 = temp1.getSiguinte();
        }

        while (temp2 != null) {

            if (grupo1.search(temp2.getDato()) == false) {
                colaPertenencia.add(temp2.getDato());
            }

            temp2 = temp2.getSiguinte();
        }

        return colaPertenencia.imprimirInterseccion();
    }

}


Descargar zip proyecto Completo


 

Comentarios

Entradas populares de este blog

Pilas en Java Ejemplo y Código

Una pila es una estructura de datos en la cual podemos almacenar información para su posterior procesamientos, el acceso a sus elementos almacenados es de tipo LIFO (del inglés Last In, First Out , «último en entrar, primero en salir») lo que quiere decir que el ultimo elemento almacenado o apilado es el primer elemento en salir o en ser desapilado. Pilas en java  Para hacer uso de las pilas en java es necesario crear una clase nodo la cual representara cada elemento u objeto que ara parte de la pila, posteriormente crear una clase pila la cual permitirá unir cada uno de los nodos para permitir generar la estructura de datos y hacer diferentes procesos e interactuar con los elementos almacenados. Para dar un ejemplo crearemos un proyecto java el cual permitirá haciendo uso de las Pilas  almacenar (n) número de estudiantes los cuales tengan como atributos: (Código, Nombre y Edad), listarlos e imprimir la suma de todas las edades. Para realizar este proyecto Crearemos las Clases

PREGUNTAS Y RESPUESTAS MICROCONTROLADORES

1) Cuales son los elementos esenciales de la arquitectura Von Neumann?  los elementos esenciales de la arquitectura von neumann son los siguiente:  -Procesador: Encargado tanto de ejecutar las instrucciones de los programas que           proporcionamos al ordenador como de controlar y coordinar el funcionamiento del           resto de componentes. -Memoria​: Lugar donde se almacenan los datos y las instrucciones a tratar. -Interfaces de Entrada/Salida​: Dispositivos creados para poder intercambiar        información con el exterior de la máquina. -Buses: Las conexiones que interconectan los diferentes módulos que componen el           ordenador. 2) Indique las principales ventajas de la arquitectura Harvard?  - ​El tamaño de las instrucciones no está relacionado con el de los datos, y por lo                 tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de            programa, logrando así mayor velocidad y menor longitud de programa