style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Datos comunes en dos colas

Hola necesito ayuda con un programa en java , tengo dos colas Q1 y Q2 de enteros positivos , tengo que entregar una tercera cola Q3 con los datos comunes de Q1 y Q2 y sin datos repetidos , pero tengo una restriccion , solo puedo usar los metodos de encolar y desencolar.
Agradesco su ayuda

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Algo asi:- Iteras todos los

Toma unas cartas, fichas o algo similar que puedas poner en el escritorio y haz el ejercicio manualmente. Cuando sepas el algoritmo ( los pasos necesarios ) escribelo en pseudo código y luego implementalo.

Un paso a la vez.
Algo asi:
- Iteras todos los elementos de q1
- Iteras todos los elementos de q2
- Si los elementos iterados son iguales revisa si ya esta insertado.
- Si no esta repetido lo guardas en common.

y ya.

class Q {
        void enq(e){...}
        E    deq(){...}
}
Q q1 = ...
Q q2 = ...

Q common(Q q1,Q q2) {
        Q common
        Q q1Temp
        Q q2Temp

        // iterar todos los elementos de q1
        while( (e1 = q1.deq ) != null ) {
                // iterar todos los elementos de q2
                while( (e2 = q2.deq ) != null ) {
                        // si coinciden
                        if( e1 == e2 ) {
                                // ve si esta repetido
                                exists = false
                                Q commonTemp
                                while( (ec = common.deq ) != null ) {
                                        if ( ec == e2 ) {
                                                exists = true
                                        }
                                        commonTemp.enq(ec)
                                }
                                common = commonTemp
                                if (! exists ) {
                                        common.enq(eb)
                                }
                        }
                        q2temp.enq(q2)
                }
                q2 = q2Temp
                q1Temp.enq(e1)
        }
        q1 = q1temp
        return common
}

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">