RUMBO A LA EXCELENCIA EN EDUCACIÓN SUPERIOR

Home  |  Menú 1  |  Menú 2  |  Menú 3 |    Menú 4 |  Menú 5 | Menú 6 |   Favoritos|   Unasec   |  Ciberesquina|
COLAS DE PRIORIDAD

 

Ayuda Foro

Las colas de prioridad se pueden implementar de muy diversas maneras. Este tipo abstracto de datos ha de permitir; al menos, las dos siguientes operaciones : insertar y eliminar el de menor prioridad.

Insertar: Inserta como último elemento de todos los que tengan la misma prioridad.

Eliminar: Se ha de eliminar el primero de entre los que tengan menor prioridad.

Ejemplo: con una listas enlazadas ordenadas, al ordenarla ascedentemente. Una forma eficiente y sencilla es implementarla con un array en el que sus elementos sean punteros a colas. Los elementos se colocaran en una u otra cola directamente según su prioridad.

La implementación se efectuará de la forma últimamente mencionada.

const

     Maxpr=10;

Declaración

Tipo

     prioridad= 1.. Maxpr;

          colaprioridad=array[prioridad] of colas;

     procedimiento inicializarcp(var cp:colaprioridad);

     funcion vaciacp(cp:colaprioridad):boolean;

     procedimiento insertarcp(var cp:colaprioridad; e:elementos; pr:prioridad);

     procedimiento eliminarcp(var cp: colaprioridad);

     procedimento primerocp(cp:colaprioridad; var e: elementos);

implementación

     procedimiento inicializarcp;

         var

           i: prioridad;

          inicio

             Para i:= 1 to maxpr do inicializar(cp[i]);

      fin_procedimiento;

      funcion encontrado (cp:colaprioridad):integer;

         var

               i:integer; v: boolean;

          inicio

               v:=verdadero; i:=0;

               mientras (I<maxpr) y v entonces

                    inicio

                          i:=i+1;

                         si not Vacia(cp[i]) entonces v:= false

          fin_mientras

                    si not v entonces encontrado := i si_no encontrado := 0

               fin_procedimiento;

     funcion vaciacp;

          inicio

               vaciacp:= encontrado(cp)= 0

          fin_procedimiento;

     Procedimiento insertarcp;

          inicio

               poner (cp[pr],e)

     fin_procedimento;

     Procedimento primerocp;

        var

               p: integer;

               inicio

                    p:=encontrado(cp);

                    if p<>0 then primero (cp[p],e)

     fin_procedimiento

     Procedimiento eliminarcp;

        var

          p:integer;

           inicio

               p:=encontrado (cp);

               si p<> 0 entonces quitar (cp [p])

     fin_procedimento

fin.

 


Buscadores

Universidades

UCLA

U.C

UNITEC

UJAP

 

  Imprimir

Elaborado por ; Dinora Soto Castillo,. Dinora334@hotmail.com, dinorasoto2004@yahoo.comWebMaster : CIIUNA
WebMaster : CIIUNA.Optimizado para Internet Explorer y resolución 800x600.