programacion pilas operaciones estructura ejemplos datos con colas stack queue

stack - operaciones - pilas estructura de datos ejemplos



¿Cuál es la diferencia básica entre la pila y la cola? (11)

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

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

¿Cómo se diferencia una pila y una cola?

Busqué la respuesta en varios enlaces y encontré esta respuesta.

En la programación de alto nivel,

una pila se define como una lista o secuencia de elementos que se alarga al colocar nuevos elementos "en la parte superior" de los elementos existentes y acortarse mediante la eliminación de 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 colocando el nuevo elemento en la parte posterior de los 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 tener una respuesta que sea más detallada? Por favor, ayúdame.


Un modelo visual

Pancake Stack (LIFO)

La única forma de agregar uno y / o eliminar uno es desde la parte superior.

Line Queue (FIFO)

Cuando llega, llegan al final de la cola y cuando uno se va, se van al principio de la cola.

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


Apila una colección considerada 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 ABC donde A es primero y C es el último. verticalmente se vería así: 3º elemento añadido) C 2º elemento añadido) B 1º elemento añadido) A

Observe que la "A" que se agregó primero 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" como objetivo. 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".

Recuerde que "A" fue el primer elemento que se presionó 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.


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

Imagina 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".


Para intentar simplificar demasiado la descripción de una pila y una cola, ambas son cadenas dinámicas de elementos de información a las que se puede acceder desde un extremo de la cadena y la única diferencia real entre ellas es el hecho de que:

cuando se trabaja con una pila

  • insertas elementos en un extremo de la cadena y
  • recuperas y / o eliminas elementos del mismo extremo de la cadena

mientras con una cola

  • insertas elementos en un extremo de la cadena y
  • los recuperas / quitas del otro lado

NOTA : Estoy usando la redacción abstracta de recuperar / eliminar en este contexto porque hay instancias en las que solo recuperas el elemento de la cadena o en cierto sentido simplemente lo lees o accedes a su valor, pero también hay instancias en las que eliminas el elemento de la cadena y, finalmente, hay instancias en las que haces ambas acciones con la misma llamada.

También el elemento de palabra se usa deliberadamente para abstraer la cadena imaginaria tanto como sea posible y desacoplarla de los términos específicos del lenguaje de programación. 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 usar 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 los mismos conceptos. 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.


Puede pensar en ambos como una lista ordenada de cosas (ordenadas para el momento en 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 , se vira al final, así que termino 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 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 sencillo!


STACK es una lista LIFO (último en entrar, primero en salir). significa que 3 elementos se insertan en la pila, es decir, 10,20,30. 10 se inserta primero y 30 se inserta último, por lo que 30 primero se elimina de la pila y 10 se borra por última vez de la pila. Esta es una lista LIFO (último en entrar, primero en salir).

QUEUE es una lista FIFO (First In First Out). Significa que se inserta primero un elemento que se eliminará primero. Cola de gente.e.e.


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

Stack 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.

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 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").


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").


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.


APILAR:

  1. Stack se define como una lista de elementos en los que podemos insertar o eliminar elementos solo en la parte superior de la pila.
  2. El comportamiento de una pila es como un sistema Last-In-First-Out (LIFO).
  3. Stack 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 proporcionan 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 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
  2. El comportamiento de una cola es como un sistema de Primero en entrar, primero en salir (FIFO).

Cola

Queue es una colección ordenada de elementos.

Los elementos se eliminan en un extremo llamado ''front'' end de la cola.

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

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

Apilar

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 y eliminan en un extremo llamado ''Parte superior de la pila''.

Es un objeto dinámico y en constante cambio.

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

Esta estructura de acceso se conoce como Estructura de último en salir primero (LIFO)