Haga click para publicitar en Alipso.com
Buscando Secundarios  |  Universidades  |  Carreras  |  Test Orientación Vocacional  |  Medios  |  Profesores particulares  |  Institutos   | Campus
Material Monografias  |  Exámenes Secundarios  |  Exámenes Universitarios  |  Enlaces  |  Enviar material |
Diversión Postales  |  Humor  |  Descargas  |  Juegos Comunidad  Foros  | Institucional Publicite  |  En su sitio  | Contáctese
Cursos en Buenos Aires
 Cursos de Informática | Cursos de apoyo al CBC | Carreras y Cursos de Diseño, Comunicación, Arte y Fotografía

[Monografias, exámenes y sitios ]
Todas las palabras   Cualquier palabra   Frase Exacta
Página inicial Agregar a Favoritos  |  Nuevos Recursos

Imprimir apunte Recomendar a un amigo Recordarme el recurso Descargar como PDF

Más sobre este recurso:
Catalogado en base de datos como: Programacion: pascal.Implementacion TAD Pila.: 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 | Palabras: 711 | Votar! | 1 voto | Promedio: (7 / 10) | Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Programación >

Recomendamos

Material educativo de Alipso relacionado con Programacion pascalImplementacion TAD Pila
  • Sistema NTSC: Las caracteristicas principales del primer sistema estandarizado de television color. Analisis y rendimiento del mismo. sistema NTSC, señales I y Q. señales de diferencias de color, señal de barras de colores. frecuencia de subportadora color.
  • La Paz: En los momentos que la amistad o la convivencia se rompen por cualquier causa, lo más común es la aparición de sentimientos negativos: la envidia, el rencor, el odio y el deseo de venganza, llevándonos a perder la tranquilidad y la paz interior. Al perder
  • Místicos vs. psicoticos: Busca establecer la diferenciación psicológica entre estados y estructuras pre-personales y las trans-personales
  • Caso de Fallo de Contrato de Locación: Se casa y revoca la sentencia del 23/10/97 dictada por la sala II de la Cámara en lo Civil y Comercial Común


  • Enlaces externos relacionados con Programacion pascalImplementacion TAD Pila
  • Katherine Anne Porter Escritora estadounidense(1890-1980)
  • Manuscritos vascos
  • Del mero juego al entretenimiento semanal


  • 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;

                              

     

     

     

     

     




    Boletín de Novedades

    Usuarios ya reciben nuestro boletín informativo. Suscribase Ud. también gratis.

    Suscribir Desuscribir
      X