Programacion: pascal.Implementacion TAD Pila. - ALIPSO.COM: Monografías, resúmenes, biografias y tesis gratis.
Aprende sobre marketing online, desarrollo de sitios web gratis en Youtube
Suscribite para recibir notificaciones de nuevos videos:
Miércoles 29 de Mayo de 2024 |
 

Programacion: pascal.Implementacion TAD Pila.

Imprimir Recomendar a un amigo Recordarme el recurso

Implementacion TAD pila, Contar los elementos de una pila de forma iterativa, Contar los elementos de una pila de forma recursiva, Insertar un elemento en el fondo de una pila, Invertir los elementos de una pila, Procedimiento que elimine y devuelva el úl

Agregado: 29 de AGOSTO de 2000 (Por ) | Palabras: 711 | Votar |
2 votos | Promedio: 6
| Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Programación >
Material educativo de Alipso relacionado con Programacion pascalImplementacion TAD Pila
  • Pericial: pide remocion del perito por no haber aceptado el cargo.solicita designacion de nuevo perito.:
  • Tratados entre la Union Europea y la Argentina:
  • Recursos del Estado Federal:

  • Enlaces externos relacionados con Programacion pascalImplementacion TAD Pila

    Implementación TAD Pila.

    Type

    Telem:....;

    Tpila=^Nodo

    Nodo=record

    elem:Telem;

    sig:Tpila

    end;

    Procedure Crearpila(var pila:Tpila);

    begin

    pila:=nil

    end;

    Function Pilavacia(pila:Tpila):boolean;

    begin

    Pilavacia:=pila=nil

    end;

    Procedure Apilar(var pila:Tpila;elem:Telem);

    var aux:Tpila;

    begin

    if not Pilavacia(pila) then

    begin

    new(aux);

    aux^.elem:=elem;

    aux^.sig:=pila;

    pila:=aux

    end

    else

    writeln (pila vacia')

    end;

    Procedure Desapilar(var pila:Tpila);

    var aux:Tpila;

    begin

    if not Pilavacia(pila) then

    begin

    aux:=pila;

    pila:=pila^.sig;

    dispose(aux)

    end

    else

    writeln( pila vacia')

    end;

    Procedure Cima(pila:Tpila;var elem:Telem);

    begin

    if not Pilavacia(pila) then

    elem:=pila^.elem

    else

    writeln (pila vacia')

    end;

    Problemas

    * Contar los elementos de una pila de forma iterativa

    Procedure Elementos(var pila:Tpila;var ne:integer);

    var paux:Tpila;

    elem: Telem;

    begin

    new(paux); ne:=0;

    while not Pilavacia(pila) do

    begin

    Cima(pila,elem);

    Desapilar(pila);

    Apilar(paux,elem);

    ne:=ne+1

    end;

    while not Pilavacia(paux) do

    begin

    Cima(paux,elem);

    Desapilar(paux);

    Apilar(pila,elem)

    End

    end;

    * Contar los elementos de una pila de forma recursiva

    Function Elementos(var pila:Tpila):integer;

    var elem:Telem;

    begin

    if not Pilavacia(pila) then

    begin

    Cima(pila,elem);

    Desapilar(pila);

    Elementos:=Elementos(pila)+1;

    Apilar(pila,elem)

    end

    else

    Elementos:=0

    end;

    Procedure Elementos(var pila:Tpila; var ne:integer);

    var elem:Telem;

    begin

    if not Pilavacia(pila) then

    begin

    Cima(pila,elem);

    Desapilar(pila);

    ne:=ne+1;

    Elementos(pila,ne);

    Apilar(pila,elem)

    end

    else

    writeln (pila vacia')

    end;

    * Insertar un elemento en el fondo de una pila

    Procedure Insertarfondo(var pila:Tpila;elem:Telem);

    var aux:telem;

    begin

    if not Pilavacia(pila) then

    begin

    Cima(pila,aux);

    Desapilar(pila);

    Insertarfondo(pila,elem);

    Apilar(pila,aux)

    end

    else

    Apilar(pila,elem)

    end;

    * Invertir los elementos de una pila

    Procedure Invertir(var pila:Tpila);

    var elem:Telem;

    begin

    if not Pilavacia(pila) then

    begin

    Cima(pila,elem);

    Desapilar(pila);

    Invertir(pila);

    Insertarfondo(pila,elem)

    end

    end;

    * Procedimiento que elimine y devuelva el último elemento de una pila

    Procedure Borrarultimo(var pila:Tpila;var elem:Telem; var ultimo:boolean);

    var aux:Telem;

    begin

    if not Pilavacia(pila) then

    begin

    Cima(pila,aux);

    Desapilar(pila);

    Borrarultimo(pila,elem,ultimo);

    if ultimo then

    begin

    elem:=aux;

    ultimo:=false

    end

    else

    Apilar(pila,aux)

    end

    else

    ultimo:=true

    end;

    * Función que indique si dos pilas son iguales

    Function Iguales(var P1,P2:Tpila):Boolean;

    var aux1,aux2:Telem;

    resultado:boolean;

    begin

    if Pilavacia(P1) and Pilavacia(P2) then

    resultado:=true

    else

    if Pilavacia(P1) or Pilavacia(P2) then

    resultado:=false

    else

    begin

    Cima(P1,aux1);

    Cima(P2,aux2);

    Desapilar(P1);

    Desapilar(P2);

    if aux1=aux2 then

    Iguales:=Iguales(P1,P2)

    else

    resultado:=false;

    Apilar(P1,aux1);

    Apilar(P2,aux2)

    end

    Iguales:=resultado

    end;

    2 práctica 97/98 aptdo.3

    Dados una pila y cola con el mismo número de elementos comprobar si los elementos de la pila constituyen la imagen especular de los elementos de la cola.

    Function Imagenespecular(var pila:Tpila;var cola:Tcola):boolean;

    var auxpila,auxcola:Telem;

    resultado:boolean;

    begin

    if not Pilavacia(pila) then

    begin

    Cima(pila,auxpila);

    Desapilar(pila);

    Imagenespecular:=Imagenespecular(pila,cola);

    Primero(cola,auxcola);

    Desencolar(cola);

    If not auxpila=auxcola then

    resultado:=false ;

    Encolar(cola,auxcola);

    Apilar(pila,auxpila)

    end

    else

    resultado:=true;

    Imagenespecular:=resultado

    end;

    3 práctica 97/98 aptdo.4 ( no corregido )

    * Dadas 2 pilas ordenadas ascendentemente obtener una pila con los elementos ordenados descendentemente de las pilas 1 y 2.

    Procedure Fusionar(var p1,p2,p3:Tpila);

    var aux1,aux2:Telem;

    begin

    if not Pilavacia(p1) and not Pilavacia(p2) then

    begin

    Desapilar(p1,aux1);

    Desapilar(p2,aux2);

    Insertar(aux1,aux2,p3);

    Fusionar(p1,p2,p3);

    Apilar(p1,aux1);

    Apilar(p2,aux2)

    end

    end;

    Votar

    Ingresar una calificación para del 1 al 10, siendo 10 el máximo puntaje.

    Para que la votación no tenga fraude, solo se podrá votar una vez este recurso.

    Comentarios de los usuarios


    Agregar un comentario:


    Nombre y apellido:

    E-Mail:

    Asunto:

    Opinión:



    Aún no hay comentarios para este recurso.
     
    Sobre ALIPSO.COM

    Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.

    Contacto »
    Contacto

    Teléfono: +54 (011) 3535-7242
    Email:

    Formulario de Contacto Online »