COLAS Y LISTAS GENERALES
Una  Cola es un contenedor de objetos que son insertados y eliminados de acuerdo con el principio de que el primero en entrar es el primero en salir (FIFO-First In First Out)”. “ Una  Cola es un caso particular de lista en el cual los elementos se insertan en un extremo (el posterior o final) y se suprimen en el otro (el anterior o frente)”. Las  Colas se conocen también Como Listas FIFO(first-infirst-out) olistas``primero en entrar, primero en salir ''. DEFINICION DE COLA
Un ejemplo de cola es la  Cola de impresión en el sistema operativo Windows. Cada usuario de una red de Windows coloca sus trabajos de impresión y el sistema lo imprime en el mismo orden en que fueron insertados en la cola de impresión
Las colas se utilizan en sistemas informáticos, transporte y operaciones de investigación (entre otras), donde los objetivos, personas o eventos son tomadas como datos que se almacenan y se guardan mediante colas para su posterior procesamiento.
Un Tipo de Dato Abstracto (TDA) o Abstract Data Types (TAD) se define como un modelo matemático con un conjunto de operaciones que se definen sobre este modelo. Define un tipo de dato e incluye la descripción de todo el comportamiento asociado al dato. No está asociado a ninguna implementación. El implementar un TAD supone la traducción de las especificaciones del TAD en las sintaxis de un lenguaje de programación en particular  o L A
o L A La estructura  Colase especifica formalmente por ser una Lista ordenada en la cual las Elimnacionesse realizan en un solo extremo; llamado FRENTEo PRINCIPIO de la Cola y los nuevos elementos se Añaden por el otro extremo llamado FONDO o FINALde la Cola . Existen Operaciones que definen las especificacion Formal del TAD Cola, entre ellas tenemos:  ColaCrear ColaInsertar ColaExtraer ColaHayElementos ColaEliminar ColaLlena ColaVacia
Especificación Formal Tipo: Cola(Elemento) Sintaxis : crea->Cola inserta(Cola, Elemento)->Cola vacía(Cola)->booleano primero(Cola)->Elemento suprime(Cola)->Cola Semántica: vacia(crea) => cierto vacia(inserta(C,E))=>falso primero(crea)=>error primero(inserta(C,E))=>sivacia©->E|primero(C) suprime(crea)=>error suprime(inserta(C,E))=>sivacia(C)->crea|inserta(suprime(C),E)
Implementación estática:  se representa como un vector (arreglo) y dos números. El numero de “frente” que da la posición del primero en salir y el numero “final” me da la posición de la ultima en encontrar (FIFO). Implementación dinámica:  cuando se implementa una cola de manera dinámico, la dimensión de esto puede crecer o disminuir durante la ejecución del programa
SE CREA LA COLA VACIA CONST   MAXIMO=20;  TYPE  TIPOCOLA=RECORD;  DATOS:ARRAY[1..MAXIMO] OF INTEGER;  FINAL:1.. MAXIMO;  END;  VAR  COLA: TIPOCOLA;  PROCEDURE  INICOLA; BEGIN  COLA.FINAL:=0;  END;  CREAR CARGAR (AÑADIR, ENTRAR, PUSH):  SE AÑADE UN ELEMENTO PROCEDURE  ELIMINAR;  BEGIN  for k:=1 to COLA.FINAL-1 do COLA.DATOS[k]:=COLA.DATO[K+1]; (SACAR, SALIR, POP):  SE ELIMINA EL ELEMENTO ELIMINAR PROCEDURE  INSERTAR;  BEGIN  INC (FINAL); COLA.DATOS[COLA.FINAL]:=ELEMENTO;  END;
TYPE  PUNTERO:=^NODO;  NODO:= RECORD;  INFO:= INTEGER;  SIG := PUNTERO;  END;  PROCEDURE  crearLista; BEGIN new(lista);  lista^_nodo:= 1;  lista^.siguiente=nil; END;  Se  crea la cola vacía crear PROCEDURE  INSERTAR; BEGIN  IF  COLA_VACIA(COLA) THEN  BEGIN  NEW(AUX);  AUX^.DATO:=ELEM;  COLA.FINAL^.SIG=AUX;  COLA.FINAL:=AUX;  END  ELSE  BEGIN  NEW(AUX);  AUX^.DATO=ELEM;  COLA.FINAL:=AUX;  END;  END;  (AÑADIR, ENTRAR, PUSH):  SE AÑADE UN ELEMENTO cargar PROCEDURE  Borrar;  Var  Igual, anterior:=COLA;  Begin  { se debe buscar la posición del elemento a borrar }  Actual:=l,  Anterior:=l;  While  (actual <> nil) and (actual^.clave <> elem)  do  Begin  Anterior:= actual;  Actual:=actual^.siguiente;  End;  If  (actual <> nil) and (actual^. Clave<> elem) then  Begin  If  (anterior=actual) then  L:=actual^. Sig { borrar el primero }  Else  Anterior^. Sig:= actual^.sig;  Dispose(actual);  End;  End ;  (SACAR, SALIR, POP):  SE ELIMINA EL ELEMENTO ELIMINAR
Cola circular 1.-)  Es una lista lineal en la que el último nodo a punto al primero. Las listas circular evitan excepción en la operación que se realiza sobre ellos. No existe casos especiales, cada nodo siempre tiene uno anterior  y uno siguiente.  2.-)  En algunas listas circular e añade un nodo especial de sebera, de ese modo se evita la única excepción posible, le de que la lista este vacío.
Cola Listo 1.-) es un conjunto de lentos llamados nodos en los que cada uno de ellos contiene un doto y también la dirección del siguiente nodo y el ultimo no apunto a nodo. 2.-) es las listas abierta existe un nodo especial: normalmente dinero que nuestro listo es un puntero a ese primer nodo y llamaremos a ese nodo la cabeza de la lista. Eso es porque median ese único puntero podemos acceder a todo la lista. 3.-)cuando se trabajo con cola listo con memoria denomino el puntero que se uso para acceder a la lista vale NULL, se dice que la cola esta vacía.
DEFINICION:  Una lista es una estructura de datos secuencial.  Una manera de clasificarlas es por la forma de acceder al siguiente elemento: - lista densa: la propia estructura determina cuál es el siguiente elemento de la lista.  - lista enlazada: la posición del siguiente elemento de la estructura la determina el elemento actual. Es necesario almacenar al menos la posición de memoria del primer elemento. Además es dinámica, es decir, su tamaño cambia durante la ejecución del programa.
Una lista enlazada se puede definir recursivamente de la siguiente manera: - una lista enlazada es una estructura vacía o - un elemento de información y un enlace hacia una lista  (un nodo). Gráficamente se suele representar así: pueden cambiar de tamaño, pero su ventaja fundamental es que son flexibles a la hora de reorganizar sus elementos; a cambio se ha de pagar una mayor lentitud a la hora de acceder a cualquier elemento.
Estos a veces se llaman las listas numeradas, y elementos de la lista que tienen un orden específico numérico o rango. Se utiliza el  < ol >  etiquetas (el final </ol> requiere etiqueta), para crear una lista numerada con números a partir de 1.  Los elementos se crean con el  <li>  etiquetas (el final </li> etiquetas no es necesario en HTML, pero requiere en XHTML).  Por ejemplo:  <ol>  <li>Entry 1</li>  <li>Entry 2</li>  <li>Entry 3</li>  </ol>
Se utiliza listas ordenadas en cualquier lugar que desee mostrar un orden específico para los elementos de la lista a seguir, o para clasificar los elementos de forma secuencial.  Estas listas se encuentran con mayor frecuencia en las instrucciones y recetas.   Ejemplo:

Colas y listas generales

  • 1.
    COLAS Y LISTASGENERALES
  • 2.
    Una Colaes un contenedor de objetos que son insertados y eliminados de acuerdo con el principio de que el primero en entrar es el primero en salir (FIFO-First In First Out)”. “ Una Cola es un caso particular de lista en el cual los elementos se insertan en un extremo (el posterior o final) y se suprimen en el otro (el anterior o frente)”. Las Colas se conocen también Como Listas FIFO(first-infirst-out) olistas``primero en entrar, primero en salir ''. DEFINICION DE COLA
  • 3.
    Un ejemplo decola es la Cola de impresión en el sistema operativo Windows. Cada usuario de una red de Windows coloca sus trabajos de impresión y el sistema lo imprime en el mismo orden en que fueron insertados en la cola de impresión
  • 4.
    Las colas seutilizan en sistemas informáticos, transporte y operaciones de investigación (entre otras), donde los objetivos, personas o eventos son tomadas como datos que se almacenan y se guardan mediante colas para su posterior procesamiento.
  • 5.
    Un Tipo deDato Abstracto (TDA) o Abstract Data Types (TAD) se define como un modelo matemático con un conjunto de operaciones que se definen sobre este modelo. Define un tipo de dato e incluye la descripción de todo el comportamiento asociado al dato. No está asociado a ninguna implementación. El implementar un TAD supone la traducción de las especificaciones del TAD en las sintaxis de un lenguaje de programación en particular o L A
  • 6.
    o L ALa estructura Colase especifica formalmente por ser una Lista ordenada en la cual las Elimnacionesse realizan en un solo extremo; llamado FRENTEo PRINCIPIO de la Cola y los nuevos elementos se Añaden por el otro extremo llamado FONDO o FINALde la Cola . Existen Operaciones que definen las especificacion Formal del TAD Cola, entre ellas tenemos: ColaCrear ColaInsertar ColaExtraer ColaHayElementos ColaEliminar ColaLlena ColaVacia
  • 7.
    Especificación Formal Tipo:Cola(Elemento) Sintaxis : crea->Cola inserta(Cola, Elemento)->Cola vacía(Cola)->booleano primero(Cola)->Elemento suprime(Cola)->Cola Semántica: vacia(crea) => cierto vacia(inserta(C,E))=>falso primero(crea)=>error primero(inserta(C,E))=>sivacia©->E|primero(C) suprime(crea)=>error suprime(inserta(C,E))=>sivacia(C)->crea|inserta(suprime(C),E)
  • 8.
    Implementación estática: se representa como un vector (arreglo) y dos números. El numero de “frente” que da la posición del primero en salir y el numero “final” me da la posición de la ultima en encontrar (FIFO). Implementación dinámica: cuando se implementa una cola de manera dinámico, la dimensión de esto puede crecer o disminuir durante la ejecución del programa
  • 9.
    SE CREA LACOLA VACIA CONST MAXIMO=20; TYPE TIPOCOLA=RECORD; DATOS:ARRAY[1..MAXIMO] OF INTEGER; FINAL:1.. MAXIMO; END; VAR COLA: TIPOCOLA; PROCEDURE INICOLA; BEGIN COLA.FINAL:=0; END; CREAR CARGAR (AÑADIR, ENTRAR, PUSH): SE AÑADE UN ELEMENTO PROCEDURE ELIMINAR; BEGIN for k:=1 to COLA.FINAL-1 do COLA.DATOS[k]:=COLA.DATO[K+1]; (SACAR, SALIR, POP): SE ELIMINA EL ELEMENTO ELIMINAR PROCEDURE INSERTAR; BEGIN INC (FINAL); COLA.DATOS[COLA.FINAL]:=ELEMENTO; END;
  • 10.
    TYPE PUNTERO:=^NODO; NODO:= RECORD; INFO:= INTEGER; SIG := PUNTERO; END; PROCEDURE crearLista; BEGIN new(lista); lista^_nodo:= 1; lista^.siguiente=nil; END; Se crea la cola vacía crear PROCEDURE INSERTAR; BEGIN IF COLA_VACIA(COLA) THEN BEGIN NEW(AUX); AUX^.DATO:=ELEM; COLA.FINAL^.SIG=AUX; COLA.FINAL:=AUX; END ELSE BEGIN NEW(AUX); AUX^.DATO=ELEM; COLA.FINAL:=AUX; END; END; (AÑADIR, ENTRAR, PUSH): SE AÑADE UN ELEMENTO cargar PROCEDURE Borrar; Var Igual, anterior:=COLA; Begin { se debe buscar la posición del elemento a borrar } Actual:=l, Anterior:=l; While (actual <> nil) and (actual^.clave <> elem) do Begin Anterior:= actual; Actual:=actual^.siguiente; End; If (actual <> nil) and (actual^. Clave<> elem) then Begin If (anterior=actual) then L:=actual^. Sig { borrar el primero } Else Anterior^. Sig:= actual^.sig; Dispose(actual); End; End ; (SACAR, SALIR, POP): SE ELIMINA EL ELEMENTO ELIMINAR
  • 11.
    Cola circular 1.-) Es una lista lineal en la que el último nodo a punto al primero. Las listas circular evitan excepción en la operación que se realiza sobre ellos. No existe casos especiales, cada nodo siempre tiene uno anterior y uno siguiente. 2.-) En algunas listas circular e añade un nodo especial de sebera, de ese modo se evita la única excepción posible, le de que la lista este vacío.
  • 12.
    Cola Listo 1.-)es un conjunto de lentos llamados nodos en los que cada uno de ellos contiene un doto y también la dirección del siguiente nodo y el ultimo no apunto a nodo. 2.-) es las listas abierta existe un nodo especial: normalmente dinero que nuestro listo es un puntero a ese primer nodo y llamaremos a ese nodo la cabeza de la lista. Eso es porque median ese único puntero podemos acceder a todo la lista. 3.-)cuando se trabajo con cola listo con memoria denomino el puntero que se uso para acceder a la lista vale NULL, se dice que la cola esta vacía.
  • 13.
    DEFINICION: Unalista es una estructura de datos secuencial. Una manera de clasificarlas es por la forma de acceder al siguiente elemento: - lista densa: la propia estructura determina cuál es el siguiente elemento de la lista. - lista enlazada: la posición del siguiente elemento de la estructura la determina el elemento actual. Es necesario almacenar al menos la posición de memoria del primer elemento. Además es dinámica, es decir, su tamaño cambia durante la ejecución del programa.
  • 14.
    Una lista enlazadase puede definir recursivamente de la siguiente manera: - una lista enlazada es una estructura vacía o - un elemento de información y un enlace hacia una lista (un nodo). Gráficamente se suele representar así: pueden cambiar de tamaño, pero su ventaja fundamental es que son flexibles a la hora de reorganizar sus elementos; a cambio se ha de pagar una mayor lentitud a la hora de acceder a cualquier elemento.
  • 15.
    Estos a vecesse llaman las listas numeradas, y elementos de la lista que tienen un orden específico numérico o rango. Se utiliza el < ol > etiquetas (el final </ol> requiere etiqueta), para crear una lista numerada con números a partir de 1. Los elementos se crean con el <li> etiquetas (el final </li> etiquetas no es necesario en HTML, pero requiere en XHTML). Por ejemplo: <ol> <li>Entry 1</li> <li>Entry 2</li> <li>Entry 3</li> </ol>
  • 16.
    Se utiliza listasordenadas en cualquier lugar que desee mostrar un orden específico para los elementos de la lista a seguir, o para clasificar los elementos de forma secuencial. Estas listas se encuentran con mayor frecuencia en las instrucciones y recetas. Ejemplo: