Está en la página 1de 11

MULTIPLES COLAS

PILA DE COLAS

ColaS PilaCS
max max
Y v[max+1] ColaS v[max+1]
ini,fin tope
X Y S ColaS() PilaCS()
esvacia() esvacia()
S T esllena() esllena()
nroelem() nroelem()
A G C adicionar(elem) adicionar(elem)
eliminar() eliminar()
llenar(n) llenar(n)
mostrar() mostrar()
vaciar(Z) vaciar(Z)

ColaC PilaCC
max max
v[max+1] ColaC v[max+1]
ini,fin tope
ColaC() PilaCC()
esvacia() esvacia()
esllena() esllena()
nroelem() nroelem()
adicionar(elem) adicionar(elem)
eliminar() eliminar()
llenar(n) llenar(n)
mostrar() mostrar()
vaciar(Z) vaciar(Z)

COLA DE COLAS

ColaS ColaCS
… max max
v[max+1] ColaS v[max+1]
ini,fin ini,fin
ColaS() ColaCS()
esvacia() esvacia()
esllena() esllena()
nroelem() nroelem()
adicionar(elem) adicionar(elem)
eliminar() eliminar()
llenar(n) llenar(n)
mostrar() mostrar()
vaciar(Z) vaciar(Z)
ColaC ColaCC
max max
v[max+1] ColaC v[max+1]
ini,fin ini,fin
ColaC() ColaCC()
esvacia() esvacia()
esllena() esllena()
nroelem() nroelem()
adicionar(elem) adicionar(elem)
eliminar() eliminar()
llenar(n) llenar(n)
mostrar() mostrar()
vaciar(Z) vaciar(Z)

ColaS ColaCC
max max
v[max+1] ColaS v[max+1]
ini,fin ini,fin
ColaS() ColaCC()
esvacia() esvacia()
esllena() esllena()
nroelem() nroelem()
adicionar(elem) adicionar(elem)
eliminar() eliminar()
llenar(n) llenar(n)
mostrar() mostrar()
vaciar(Z) vaciar(Z)
ColaC ColaCC
max max
v[max+1] ColaC v[max+1]
ini,fin ini,fin
ColaC() ColaCC()
esvacia() esvacia()
esllena() esllena()
nroelem() nroelem()
adicionar(elem) adicionar(elem)
eliminar() eliminar()
llenar(n) llenar(n)
mostrar() mostrar()
vaciar(Z) vaciar(Z)

Sea un conjunto de colas de vehículos(placa,marca,color,modelo)

Ejemplo Cola Simple de Colas Simples de Vehículos


Vehiculo ColaSV ColaSCV
placa max max
marca Vehiculo v[max+1] ColaSV v[max+1]
color ini,fin ini,fin
modelo

PROBLEMAS Modularizando
Contar(ColaSCv a, String x)
Cuantos Vehículos del Color X existe en el {
conjunto de Colas b=new ColaSCV()
Contar(ColaSCV a, String x) c=0
{ b=new ColaSCV() while not a.esvacia()
aux=new ColaSV() {
c=0 ColaSV cx=a.eliminar()
while not a.esvacia() c=c+busca(cx,x)
{ ColaSV cx=a.eliminar() b.adicionar(cx)
While not cx.esvacia() }
{ Vehiculo vx=cx.eliminar() Print(c)
If vx.getColor()=x a.vaciar(b)
c=c+1 }
aux.adicionar(vx) busca(ColaSV cx, String x)
} {
cx.vaciar(aux) Aux=new ColaSV()
b.adicionar(cx) k=0
} while not cx.esvacia()
a.vaciar(b) { Vehiculo vx=cx.eliminar()
print(c) If vx.getColor()=x
} k=k+1
aux.adicionar(vx)
}
cx.vaciar(aux)
return k
}
Llevar a una nueva cola los vehículos de la marca marcaX(ColaCSV a, String x)
X { aux=new ColaCSV()
marcaX(ColaCSV a, String x) nueva, aux2=new ColaSV()
{ aux=new ColaCSV() while not a.esvacia()
nueva, aux2=new ColaSV() { ColaSV cx=a.eliminar()
while not a.esvacia() ColaSV nueX=buscaX(cx,x)
{ ColaSV cx=a.eliminar() nueva.vaciar(nueX)
While not cx.esvacia() aux.adicionar(cx)
{ Vehiculo vx=cx.eliminar() }
If vx.getMarca()=x a.vaciar(aux)
nueva.adicionar(vx) a.adicionar(nueva)
Else }
aux2.adicionar(vx) buscas(ColaSV a, String x)
} { aux,nue=new ColaSV()
cx.vaciar(aux2) While not a.esvacia()
aux.adicionar(cx) { Vehiculo vx=a.eliminar()
} If vx.getMarca()=x
a.vaciar(aux) nue.adicionar(vx)
a.adicionar(nueva) Else
} aux.adicionar(vx)
}
cx.vaciar(aux)
return nue
}
Ejemplo Cola Circular de Colas Simples de Vehículos
Vehiculo ColaSV ColaCCV
placa max max
marca Vehiculo v[max+1] ColaSV v[max+1]
color ini,fin ini,fin
modelo
Ejemplo Cola Simple de Colas Simples de Vehículos
Vehiculo ColaSV ColaSCV
placa max max
marca Vehiculo v[max+1] ColaSV v[max+1]
color ini,fin ini,fin
modelo

ColaCCV
max
ColaSV v[max+1]
ini,fin
MULTIPLE COLA

1 2 3 4 …. N-1 N

1 2 3 4 …. N-1 N

Cola de Colas

palabra

Sea un diccionario que almacena palabras y de cada palabra almacena sus significados

CCircularS Palabra CSimpleP


max texto max
v[max+1] CCircularS s v[max+1]
ini,fin ini,fin
….. getters …..
setters
leer
mostrar
De cada palabra mostrar el ultimo significado
ultimaSig(CSimpleP A)
{ aux=new CSimpleP()
While not A.esvacia()
{
Palabra x=A.eliminar()
aux.adicionar(x)
n=x.getS().nroelem()
for i=1 to n-1
x.getS().adicionar( x.getS().eliminar())
String u=x.getS().eliminar()
print(x.getTexto(),u)
x.getS().adicionar(u)
}
A.vaciar(aux)
}

Resolver un ejercicio y enviar a la plataforma

// Cuantos estudiantes tienen la evaluación en prácticas ”pr”item

// mostrar los significados de la palabra X

Vehiculo CCircularV MultiCCV


placa max nc
marca Vehiculo v[max+1] CCircularV v[50]
color ini,fin
modelo
CCircularV () MultiCCV()
esvacia() getNc()/setNc(n)
esllena() esvacia(i)
nroelem() esllena(i)
adicionar(elem) nroelem(i)
eliminar() adicionar(i,Vehiculo elem)
llenar(n) Vehiculo eliminar(i)
mostrar() llenar(i,n)
vaciar(Z) llenar(n)
mostrar(i)
mostrar()
vaciar(i,CCircularV Z)
vaciar(i,j)
Class MultiCCV
{ private
int nc
CCircularV v[50]
public
MultiCCV()
{ for i=1 to 49
v[i]=new CCircularV()
}
getNc(){return nc}
setNc(n){nc=n}
esvacia(int i)
{ return v[i].esvacia() }
esllena(int i)
{ return v[i].esllena() }
nroelem(int i)
{ return v[i].nroelem() }
adicionar(int i,Vehiculo elem)
{ v[i].adicionar(elem) }
Vehiculo eliminar(i)
{ return v[i].eliminar() }
llenar(int i,n)
{ for j=1 to n
{ nue=new Vehiculo()
nue.leer()
adicionar(i,nue) //v[i].adicionar(nue)
}
}
llenar(int n)
{ nc=n
For i=1 to nc
{ read(k)
llenar(i,k)
}
}
mostrar(int i)
{ v[i].mostrar() }
mostrar()
{ for i=1 to nc
mostrar(i)
}
vaciar(int i,CCircularV Z)
{ v[i].vaciar(Z) }
vaciar(int i,j)
{ v[i].vaciar(v[j] }
}
Contar los vehiculos del color X
Contar(MultiCCV a, String x)
{ aux=new CCircularV()
c=0
For i=1 to a.getNc()
{ while not a.esvacia(i)
{ Vehiculo vx=a.eliminar(i)
If vx.getColor()=x
c=c+1
aux.adicionar(vx)
}
a.vaciar(i,aux)
}
Print(c)
}
Contar2(MultiCCV a, String x)
{
c=0
For i=1 to a.getNc()
{ n=a.nroelem(i)
For k=1 to n
{ Vehiculo vx=a.eliminar(i)
If vx.getColor()=x
c=c+1
a.adicionar(vx)
}

}
Print(c)
}
Tarea:
1. llevar a una nueva cola los vehículos de la marca X
2. Reorganizar las colas, tal que en cada cola estén vehículos de mismo color
3. Eliminar la i-esima cola, distribuyendo sus elementos en el resto de las colas

También podría gustarte