jueves, 18 de octubre de 2012
COLAS
Definición.
Una cola constituye una estructura lineal de datos en la que los nuevos elementos se
introducen por un extremo y los ya existentes se eliminan por el otro. Es importante
señalar que los componentes de la cola se eliminan en el mismo orden en el cual se
insertaron.Es decir, el primer elemento que se introduce en la estructura será el que
se eliminará en primer orden.
Política.
Las colas también reciben el nombre de estructuras FIFü (First-In, First-Out: el primero en entrar es el primero en
salir).
Elementos.
Cuando se implementan con arreglos unidimensionales, es importante definir un
tamaño máximo para la cola y dos variables auxiliares. Una de ellas para que almacene
la posición del primer elemento de la cola -FRENTE- y otra para que guarde:
la posición del último elemento de la cola -FINAL-.
Operaciones con colas.
Insertar un elemento en la cola. Las inserciones se llevaran a cabo por el FINAL.
Eliminar un elemento de la cola. La eliminaciones se harán por el FRENTE.
Cola vacía. Es un método que nos indica si la cola esta vacía.
Cola llena. Es un método que nos dice si la cola esta llena.
Algoritmos.
Insertar
Inserta_cola(COLA,MAX,FRENTE,FINAL,DATO)
{Este algoritmo inserta el elemento DATO al final de una estructura tipo cola. FRENTE y FINAL son los punteros
que indican, respectivamente, el inicio y fin de COLA. La primera vez FRENTE y FINAL tienen el valor 0, ya que
la cola esta vacía. MAX es el máximo numero de elementos que puede almacenar la cola.}
Eliminar
Elimina_cola(COLA,FRENTE,FINAL,DATO)
{Este algoritmo elimina el primer elemento de una estructura tipo cola y lo almacena en DATO. FRENTE y FINAL
son los punteros que indican, respectivamente, el inicio y fin de la cola.}
Cola vacía
Cola_vacía(COLA,FRENTE,BAND)
{Este algoritmo determina si una estructura de tipo cola esta vacía, asignando a BAND el valor de verdad
correspondiente.}
1. Si (FRENTE = 0)
Cola llena
Cola_llena(COLA,FINAL,MAX,BAND)
{Este algoritmo determina si una estructura de tipo cola esta llena, asignando a BAND el valor de verdad
correspondiente. MAX es el numero máximo de elementos que puede almacenar COLA.}
Aplicaciones.
Una aplicación común de las colas se presenta cuando se envía a imprimir algún documento o programa
en las colas de impresión. Cuando hay una sola impresora para atender a varios usuarios, suele suceder
que algunos de ellos soliciten los servicios de impresión al mismo tiempo o mientras el dispositivo este
ocupado. En estos casos se forma una cola con los trabajos que esperan para ser impresos; estos se procesaran en el orden el cual fueron introducidos en la cola.
Suscribirse a:
Enviar comentarios (Atom)
Hola, oye podrias ayudarnos con un codigo que es para insertar un nodo antes de otro nodo dado.. nos aparece error en los else
ResponderEliminarTe dejo el codigo ... por favor
#include
#include
struct nodo {//inicio struct
char apellido[20];
nodo *liga;
};//fin struct
void main(void){//inicio main
int res=0,res2=0;
nodo *p,*q,*t,*x,*aux;
char buscar[20];
char dato[20];
p=new nodo;
cout<<"Ingresa el apellido: "<apellido);
p->liga=NULL;
t=p;
cout<<"Desea agregar más nodos? SI:1, NO:2"<>res;
while(res==1)
{// inicio while mas nodos
q=new nodo;
cout<<"Ingresa el apellido: "<apellido);
q->liga=NULL;
t->liga=q;
t=q;
cout<<"Desea agregar más nodos? SI:1, NO:2"<>res;
}//fin while mas nodos
//RECORRIDO 1
aux=p;
while(aux!=NULL)
{//inicio while r1
cout<apellido<liga;
}//fin while r1
// INSERTA ANTES DE OTRO NODO
cout<<"Desea insertar un nodo: 1:SI 2:NO"<>res2;
if(res2==1)
{
cout<<"Antes de de que nodo lo deseas agregar: "<apellido!=buscar) && (ban==1)){// inicio while buscar
cout<<"Entro al while"<liga!=NULL){//inicio if
cout<<"Entro al if (q->liga!=NULL)"<liga;
else
//inicio else
// cout<<"Bandera=0"<liga=null
}// fin while buscar
if(ban==1){//inicio si bandera es 1
x=new nodo;
strcpy(x->apellido, dato);
cout<<"Entro if band=1"<liga=p;
p=x;
else
t->liga=x;
x->liga=q;
}//fin del if p=q
else
cout<<"El nodo no se encuentra"<apellido<liga;
}//fin del while r2
}//fin main
Saludos