Escolar Documentos
Profissional Documentos
Cultura Documentos
public Elo(){
prox = null;
}
prim = null;
for (Elo p = cj2.prim; p != null; p = p.prox)
{
q = new Elo(p.dado);
if (ult == null)
prim = q;
else
ult.prox = q;
ult = q;
}
} Estruturas de Dados I - Pedro Nuno Moura - UNIRIO 12
Classe Conj (continuação)
/* Função privada para realizar uma cópia de um outro conjunto. */
public void apaga(){
for (Elo p = prim; p != null; p = prim){
prim = prim.prox;
}
p = null;
return true;
}
Estruturas de Dados I - Pedro Nuno Moura - UNIRIO 16
Classe Conj (continuação)
/* Método para união de conjuntos. Une conjunto com cj2 e retorna novo conjunto com a
união. Usa fato de conjuntos estarem ordenados e percorre as listas em paralelo. */
public ConjGenerico<T> uniao(ConjGenerico<T> cj2) {
Elo q, p1 = prim, p2 = cj2.prim, ult = null;
ConjGenerico<T> uniao = new ConjGenerico<T>();
while ( (p1 != null) || (p2 != null) ){
if ( (p1 != null) && ( (p2 == null) || (p1.dado < p2.dado))){
q = new Elo(p1.dado);
p1 = p1.prox;
}
else {
q = new Elo(p2.dado);
if ((p1 != null) && (p1.dado.compareTo(p2.dado) == 0))
p1 = p1.prox;
p2 = p2.prox;
}
if (ult == null)
uniao.prim = q;
else
ult.prox = q;
ult = q;
}
return uniao;
}
while ( p1 != null ){
uniao.insere(p1.dado);
p1 = p1.prox;
}
while ( p2 != null ){
if ( ! uniao.pertence(p2.dado) )
uniao.insere(p2.dado);
p2 = p2.prox;
}
return uniao;
}