Una
cola
(también llamada fila)
es una estructura
de datos,
caracterizada por ser una secuencia de elementos en la que la
operación de inserción push se realiza por un extremo y la
operación de extracción pop por el otro. También se le llama
estructura FIFO
(del inglés First In First Out), debido a que el primer elemento en
entrar será también el primero en salir.
Las
colas se utilizan en sistemas informáticos,
transportes
y operaciones de investigación
(entre otros), dónde los objetos, personas o eventos son tomados
como datos que se almacenan y se guardan mediante colas para su
posterior procesamiento. Este tipo de estructura de datos abstracta
se implementa en lenguajes
orientados a objetos
mediante clases, en forma de listas enlazadas.
Operaciones
Básicas
Crear:
se crea la cola vacía.
Encolar
(añadir, entrar, insertar): se añade un elemento a la
cola. Se añade al final de esta.
Desencolar
(sacar, salir, eliminar): se elimina el elemento frontal de
la cola, es decir, el primer elemento que entró.
Frente
(consultar, front): se devuelve el elemento frontal de la
cola, es decir, el primer elemento que entró.
Implementaciones
Colas
en C++
#ifndef COLA
#define COLA // Define la cola
template <class T>
class Cola{
private:
struct Nodo{
T elemento;
struct Nodo* siguiente; // coloca el nodo en la segunda posición
}* primero;
struct Nodo* ultimo;
unsigned int elementos;
public:
Cola(){
elementos = 0;
}
~Cola(){
while (elementos != 0) pop();
}
void push(const T& elem){
Nodo* aux = new Nodo;
aux->elemento = elem;
if (elementos == 0) primero = aux;
else ultimo->siguiente = aux;
ultimo = aux;
++elementos;
}
void pop(){
Nodo* aux = primero;
primero = primero->siguiente;
delete aux;
--elementos;
}
T consultar() const{
return primero->elemento;
}
bool vacia() const{
return elementos == 0;
}
unsigned int size() const{
return elementos;
}
};
#endif
Colas en JAVA
public void inserta(Elemento x) {
Nodo Nuevo;
Nuevo = new Nodo(x, null);
if (NodoCabeza == null) {
NodoCabeza = Nuevo;
} else {
NodoFinal.Siguiente = Nuevo;
}
NodoFinal = Nuevo;
}
public Elemento cabeza() throws IllegalArgumentException {
if (NodoCabeza == null) {
throw new IllegalArgumentException();
} else {
return NodoCabeza.Info;
}
}
public Cola() {
// Devuelve una Cola vacía
NodoCabeza = null;
NodoFinal = null;
}
|
esta muy buena y con esos ejercicios en java y en c++ mas todavia fina
ResponderEliminar