lunes, 8 de octubre de 2012

Cuestionario: Pilas


  ¿QUE ES UNA ESTRUCTURA DE DATOS PILA?

Una pila es una estructura de datos en la que la inserción y la extracción de elementos se realiza solo por un extremo que se denomina cabeza. Como consecuencia, los elementos de una pila serán eliminados en orden inverso al que se insertaron. es decir, el ultimo elemento que se inserto en la pila sera el primero en salir de ella en ingles denominada (LIFO) Last Imput, First Output.


        ¿CUAL ES LA ESTRUCTURA DE UNA PILA?


  • Tope
  • Estructura de nodo PILA
  • Variable puntero Aux
  • Variable Dato


struct nodo \{
   int dato;
   struct nodo 
*siguiente;
};      


 ¿COMO FUNCIONA UNA PILA?

El inicio tendrá la tarea de apuntar a un valor nulo Porque el apuntador siguiente tendra que apuntar al dato para ser ingresado y pueda continuar el mecanismo de una pila por lo cual cumplira el concepto de ultimo en entrar, primero en salir.




        ¿APLICACIONES DE LAS PILAS?

 Reconocimiento del Lenguaje:

                                              L={W$W´ / W es una cadena de caracteres y W´es su
                                              inversa} (Suponemos que $ no está ni en W ni en W´)

Editor de líneas.
                                   #: carácter de borrado
                                  @: carácter de cancelación de línea
IDEA: procesar una línea de texto usando una pila.
  • Leer un carácter
  • Si el carácter no es '#' ni '@' meterlo en la pila
  • Si el carácter es '#' sacar de la pila
  • Si el carácter es '@' vacia la pila
El código podría ser:


editar (void) {
   pila p, q;
   char c;
   p = crear();
   while ((c = (char)getchar()) != EOF) {
 if (c == '#')
  quitar(p);
 else
  if (c == '@') {
   destruir(&p);
   p = crear();
  } else
   poner(c, p);
   };
   q = crear();
   while (!vacia(p)) {
 poner(tope(p), q);
 quitar(p);
   };
   while (!vacia(q)) {
 printf("%c", tope(q));
 quitar(q);
   };
   destruir(&q);
   destruir(&p);




        ¿IMPLEMENTACION ALGORITMICA EN UNA PILA?

                     Algoritmo Lenguaje_L

                     Tipos

                     TipoElemento = $

                     Variables

                     TipoElemento c1, c2

                     CPila pila

                     B bien

                     Inicio

                     Leer(c1)

                     MIENTRAS (c1 != ‘$’) HACER

                     pila.Apilar(c1)

                     Leer(c1)

                     FINMIENTRAS

                     Leer(c1)

                     bien = VERDADERO

                     MIENTRAS (bien AND   (c1 <> CHR(13))) HACER



        ¿IMPLEMENTACION DE UNA PILA EN LENGUAJE C++?

Un requisito típico de almacenamiento de una pila de n elementos es O(n). El requisito típico de tiempo de O(1) las operaciones también son fáciles de satisfacer con un array o con listas enlazadas simples.
La biblioteca de plantillas de C++ estándar proporciona una "pila" clase templated que se limita a sólo apilar/desapilar operaciones. Java contiene una biblioteca de la clase Pila que es una especialización de Vector. Esto podría ser considerado como un defecto, porque el diseño heredado get () de Vector método LIFO ignora la limitación de la Pila.

 typedef struct _nodo \{
   int dato;
   struct _nodo *siguiente;
} tipoNodo;

typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;








Estructura de Datos Oswaldo Cairo


No hay comentarios:

Publicar un comentario