2012-06-11 23 views
78

¿Cuál es la diferencia básica entre la pila y la cola?¿cuál es la diferencia básica entre la pila y la cola?

Por favor, ayúdenme, no puedo encontrar la diferencia.

¿Cómo diferencia una pila y una cola?

I buscado la respuesta en varios enlaces y que esta respuesta es ..

En programación de alto nivel,

una pila se define como una lista o secuencia de elementos que se alarga mediante la colocación de nuevos elementos "en la parte superior" de los elementos existentes y acortado al eliminar elementos de la parte superior de los elementos existentes. Es un ADT [Tipo abstracto de datos] con operaciones matemáticas de "push" y "pop".

Una cola es una secuencia de elementos que se agrega al colocar el nuevo elemento en la parte posterior de existentes y acortados mediante la eliminación de elementos delante de la cola. Es un ADT [Tipo de datos abstracto]. Hay más en estos términos entendidos en la programación de Java, C++, Python, etc.

¿Puedo obtener una respuesta que sea más detallada? Por favor, ayúdame.

+11

Parece que han respondido a su propia pregunta - una pila es un First-Out Last-In (LIFO) de contenedores y una cola es un contenedor Primero en entrar, primero en salir (FIFO). – Iridium

Respuesta

4

Una pila es una colección de elementos que se pueden almacenar y recuperar de a uno por vez. Los elementos se recuperan en orden inverso al tiempo de almacenamiento, es decir, el último elemento almacenado es el siguiente elemento que se recuperará. A la pila a veces se la denomina estructura de último en entrar primero en salir (LIFO) o primer en entrar fuera (FILO). Los elementos previamente almacenados no se pueden recuperar hasta que se haya recuperado el último elemento (generalmente denominado el elemento 'superior').

Una cola es una colección de elementos que se pueden almacenar y recuperar de a uno por vez. Los elementos se recuperan en orden de su tiempo de almacenamiento, es decir, el primer elemento almacenado es el siguiente elemento que se recuperará. Una cola a veces se denomina estructura de Primero en entrar, primero en salir (FIFO) o Último en salir (LILO). Los elementos almacenados posteriormente no se pueden recuperar hasta que se haya recuperado el primer elemento (generalmente denominado elemento "frontal").

109

Stack es una estructura de datos LIFO (último en entrar primero en salir). El enlace asociado a wikipedia contiene una descripción detallada y ejemplos.

Queue es una estructura de datos FIFO (primero en entrar, primero en salir). El enlace asociado a wikipedia contiene una descripción detallada y ejemplos.

33

Puede pensar en ambos como una lista ordenada de cosas (ordenadas por el momento en el que se agregaron a la lista). La principal diferencia entre los dos es cómo los nuevos elementos entran en la lista y los elementos antiguos abandonan la lista.

Para una pila, si tengo una lista a, b, c, y agrego d, que se insertan en el final, así que terminar con a,b,c,d. Si quiero mostrar un elemento de la lista, elimino el último elemento que agregué, que es d. Después de un pop, mi lista ahora es a,b,c otra vez

Para una cola, agrego nuevos elementos de la misma manera. a,b,c se convierte en a,b,c,d después de agregar d. Pero, ahora cuando exploto, tengo que tomar un elemento del frente de la lista, por lo que se convierte en b,c,d.

¡Es muy simple!

10

PILA:

  1. Pila se define como una lista de elementos en los que podemos insertar o eliminar sólo los elementos en la parte superior de la pila.
  2. El comportamiento de una pila es como un sistema Last-In-First-Out (LIFO).
  3. La pila se usa para pasar parámetros entre funciones. En una llamada a una función, los parámetros y las variables locales se almacenan en una pila.
  4. Los lenguajes de programación de alto nivel, como Pascal, c, etc., que brindan soporte para la recursión, usan la pila para la contabilidad. Recuerde que en cada llamada recursiva, existe la necesidad de guardar el valor actual de los parámetros, las variables locales y la dirección de retorno (la dirección a la cual el control debe regresar después de la llamada).

cola:

  1. Queue es una colección del mismo tipo de elemento. Es una lista lineal en el que las inserciones pueden tener lugar en un extremo de la lista, llamado trasera de la lista, y supresiones sólo puede tener lugar en el otro extremo, llamado el frente de la lista
  2. El comportamiento de una cola es como un sistema de Primero en entrar, primero en salir (FIFO).
+0

Estoy bastante seguro de que puede insertar al final o al inicio de una pila también, creo que lo importante a tener en cuenta aquí es FIFO vs. LIFO – Mike

0

STACK: Stack se define como una lista de elemento en el que podemos insertar o eliminar elementos solamente en la parte superior de la pila

Stack se utiliza para pasar parámetros entre función. En una llamada a una función, los parámetros y las variables locales se almacenan en una pila.

Una pila es una colección de elementos que se pueden almacenar y recuperar de a uno por vez. Los elementos se recuperan en orden inverso al tiempo de almacenamiento, es decir, el último elemento almacenado es el siguiente elemento que se recuperará. A la pila a veces se la denomina estructura de último en entrar primero en salir (LIFO) o primer en entrar fuera (FILO). Los elementos previamente almacenados no se pueden recuperar hasta que se haya recuperado el último elemento (generalmente denominado el elemento 'superior').

cola:

Queue es una colección del mismo tipo de elemento. Es una lista lineal en la que las inserciones pueden tener lugar en un extremo de la lista, llamada parte posterior de la lista, y las eliminaciones pueden tener lugar solo en el otro extremo, llamado el frente de la lista

Una cola es una colección de elementos, que se pueden almacenar y recuperar uno a la vez. Los elementos se recuperan en orden de su tiempo de almacenamiento, es decir, el primer elemento almacenado es el siguiente elemento que se recuperará. Una cola a veces se denomina estructura de Primero en entrar, primero en salir (FIFO) o Último en salir (LILO). Los elementos almacenados posteriormente no se pueden recuperar hasta que se haya recuperado el primer elemento (generalmente denominado elemento "frontal").

14

cola

cola es una colección ordenada de elementos.

Los elementos se eliminan en un extremo denominado 'frontal' de la cola.

Los elementos se insertan en el otro extremo llamado 'posterior' de la cola.

El primer elemento insertado es el primero en ser eliminado (FIFO).

Pila

Stack es una colección de artículos.

Permite el acceso a un solo elemento de datos: el último elemento insertado.

Los elementos se insertan & eliminados en un extremo llamado 'Parte superior de la pila'.

Es un objeto dinámico que cambia constantemente &.

Todos los elementos de datos se ponen en la parte superior de la pila y se quitan la parte superior

Esta estructura de acceder a que se conoce como Última In First Out estructura (LIFO)

+0

Así que, básicamente, una 'cola' es una 'FIFO' - primero en entrar primero en salir cola. Mientras que una 'pila' es un "LIFO" - la última en entrar es la primera cola. ¿Estoy en lo correcto? –

+0

@SebastianNielsen Sí correcto como se menciona en la respuesta. – Dissanayake

+0

Pero, ¿cuál es la diferencia entre una lista vinculada y una pila? ¿No es lo mismo? –

0

PILA es un LIFO (último en primera lista). significa que se deben insertar 3 elementos en la pila, es decir, 10,20,30. 10 se inserta primero & 30 se inserta último, por lo que 30 primero se elimina de la pila & 10 es el último eliminado de la pila.Esta es una lista LIFO (último en entrar primero en salir).

QUEUE es lista FIFO (Primero en entrar primero en salir). Significa que se inserta primero un elemento que debe ser eliminado primero.e.g cola de personas.

0

Se considera una pila una colección vertical. Primero entiendo que una colección es un OBJETO que reúne y organiza otros OBJETOS más pequeños. Estos OBJETOS más pequeños se conocen comúnmente como Elementos. Estos elementos son "Empujados" en la pila en un orden A B C donde A es primero y C es el último. verticalmente que se vería así: tercera elemento añadido) C segundo elemento añadido) B primero elemento añadido) Un aviso

que la "A", que se añade en primer lugar a la pila está en la parte inferior. Si desea eliminar la "A" de la pila, primero debe eliminar "C", luego "B", y finalmente su elemento "A" de destino. La pila requiere un enfoque LIFO al tratar con las complejidades de una pila. (Último en entrar, primero en salir) Al eliminar un elemento de una pila, la sintaxis correcta es pop. no eliminamos un elemento de una pila que "reventamos".

Recuerda que "A" fue el primer elemento insertado en la pila y "C" fue el último elemento que se apiló en la pila. Si decides que te gustaría ver lo que está en la parte inferior de la pila, siendo que los 3 elementos están en la pila ordenada A siendo la primera B la segunda y C el tercer elemento, la parte superior debería ser eliminada luego la segundo elemento añadido para ver la parte inferior de la pila.

+0

Formatee su pregunta para que se vea mejor y más legible. – Neeku

35

Imagine una pila de papel . La primera pieza que se pone en la pila está en la parte inferior, por lo que es la última en salir. Esto es LIFO. Agregar un trozo de papel se denomina "empujar", y quitar un trozo de papel se denomina "reventar".

Imagínese una cola en la tienda . La primera persona en la fila es la primera persona en salirse de la línea. Esto es FIFO. Una persona que entra en línea es "en cola", y una persona que se sale de la línea es "retirada".

+0

Una de las mejores analogías que puedo pensar. – Yeikel

0

Para tratar de sobre-simplificar la descripción de una pila y una cola, Son ambas cadenas dinámicas de elementos de información que se puede acceder desde un extremo de la cadena y la única diferencia real entre ellos es el hecho de que:

cuando se trabaja con una pila

  • insertar elementos en un extremo de la cadena y
  • recuperar y/o eliminar elementos desde el mismo extremo de la cadena

mientras que con una cola

  • insertar elementos en un extremo de la cadena y
  • recuperar/ellos eliminar desde el otro extremo

NOTA: estoy usando la formulación abstracta de recuperar/eliminar en este contexto porque hay casos en los que acaba de recuperar el elemento de la cadena o, en cierto sentido, solo lo leyó o accedió a su valor, pero también hay instancias en las que elimina el elemento de la cadena y, finalmente, hay instancias en las que realiza ambas acciones con la misma llamada.

También se usa deliberadamente la palabra elemento para abstraer la cadena imaginaria tanto como sea posible y desacoplarla del lenguaje de programación específico términos. Esta entidad de información abstracta llamada elemento puede ser cualquier cosa, desde un puntero, un valor, una cadena o caracteres, un objeto, ... dependiendo del idioma.

En la mayoría de los casos, aunque en realidad es un valor o una ubicación de memoria (es decir, un puntero). Y el resto simplemente oculta este hecho detrás de la jerga del lenguaje <

Una cola puede ser útil cuando el orden de los elementos es importante y debe ser exactamente el mismo que cuando los elementos ingresaron por primera vez en su programa. Por ejemplo, cuando procesa una transmisión de audio o cuando almacena datos de red en búfer. O cuando haces cualquier tipo de tienda y procesa hacia adelante. En todos estos casos, necesita la secuencia de los elementos que se mostrarán en el mismo orden en que ingresaron a su programa; de lo contrario, la información puede dejar de tener sentido. Por lo tanto, podría dividir su programa en una parte que lea datos de alguna entrada, haga algún procesamiento y los escriba en una cola y una parte que recupere datos de la cola los procese y los almacene en otra cola para su posterior procesamiento o transmisión de datos .

Una pila puede ser útil cuando necesita almacenar temporalmente un elemento que se va a utilizar en los pasos inmediatos de su programa. Por ejemplo, los lenguajes de programación generalmente usan una estructura de pila para pasar variables a las funciones. Lo que realmente hacen es almacenar (o presionar) los argumentos de la función en la pila y luego saltar a la función donde eliminan y recuperan (o reventan) la misma cantidad de elementos de la pila.De esta forma, el tamaño de la pila depende del número de llamadas anidadas de funciones. Además, después de que una función ha sido llamada y haya terminado lo que estaba haciendo, ¡deja la pila exactamente en la misma condición que antes de que se la llamara! De esta forma, cualquier función puede funcionar con la pila ignorando cómo operan otras funciones con ella.

Por último, debe saber que hay otros términos utilizados por igual para conceptos similares. Por ejemplo, una pila podría llamarse montón. También hay versiones híbridas de estos conceptos, por ejemplo, una cola de doble extremo puede comportarse al mismo tiempo como una pila y como una cola, porque se puede acceder por ambos extremos simultáneamente. Además, el hecho de que una estructura de datos se le proporcione como una pila o como una cola, no significa necesariamente que se implemente como tal, hay instancias en las que una estructura de datos puede implementarse como cualquier cosa y proporcionarse como un recurso específico. estructura de datos simplemente porque se puede hacer que se comporte como tal. En otras palabras, si proporciona un método push y pop a cualquier estructura de datos, mágicamente se convierten en stacks.

+0

No use formato de código para texto que no sea código. – EJP

23

Un modelo visual

PancakeStack (LIFO)

La única manera de añadir uno y/o eliminar uno es de la parte superior.

pancake stack

LíneaQueue (FIFO)

Cuando uno llega llegan al final de la cola y cuando uno deja de salir en la parte delantera de la cola.

dmv line

Dato curioso: los británicos se refieren a las líneas de las personas como un Queue

+1

Jee, esta debe ser la respuesta imo. Gracias @Jacksonkr – Kulasangar

Cuestiones relacionadas