¿Por qué poner algo en la pila llamado "push"?


22

De acuerdo con http://dictionary.reference.com

empujar

verbo (usado con objeto)

  1. presionar sobre o contra (una cosa) con fuerza para alejarlo.

  2. mover (algo) de una manera específica ejerciendo fuerza; empujón; unidad: empujar algo a un lado; para empujar la puerta abierta .

  3. efectuar o lograr empujando a un lado los obstáculos: abrirse paso entre la multitud.

  4. causar extender o proyectar; empuje.

  5. presionar o instar a alguna acción o curso: su madre lo empujó a conseguir un trabajo.

Esta IMO se ajusta a las colas FIFO . ¿Hay alguna explicación para esto?


2
Bueno ... en Israel, la analogía era para una revista de armas, ya que necesitas EMPUJAR las balas ... pero creo que me gusta más el dispencer pez.
GY

@GY - LOL - Vine aquí para decir exactamente eso (lo de Pez). ¡BASTARDO! Aunque la cultura interesante allí en Israel ...
Edward Strange

Supongo que si solo por hoy estoy FGITW!
Scott C Wilson

1
Esta pregunta fue formulada y respondida en stackoverflow: stackoverflow.com/questions/420315/stacks-why-push-and-pop . Push y pop son discutidos.
Bratch

Necesita etiqueta de "historial".
Bratch

Respuestas:


47

Según la leyenda, la pila original recibió su nombre por analogía con las pilas de platos en la cafetería de la universidad: pones una encima, y ​​la pila de platos (cargada por resorte) se cae un poco, quitas uno y aparece Subir un poco. Por lo tanto, "empujar" recibió una connotación de operar hacia abajo, a pesar de que en realidad no empuja hacia abajo la placa, simplemente la coloca hacia abajo y la gravedad hace el trabajo. "Pila de inserción" sigue siendo una frase común, y las pilas tienden a crecer hacia abajo en la memoria (es decir, con direcciones de memoria decrecientes), aunque es dudoso si eso tiene algo que ver con las pilas de platos o no.


1
Pushdown puede originarse en Pushdown Automata.
Oded

11
@Oded Estoy bastante seguro de que es al revés. Un autómata pushdown es un autómata finito aumentado por una pila pushdown.
Konrad Rudolph

Y sabes que un pobre tonto está aprendiendo que, debido a que la PC cuenta "hacia arriba", las direcciones de memoria más bajas están en la parte inferior.
Philip

Tenía la impresión de que el origen tenía algo que ver con esos picos de documentos. Ya sabes, un clavo sostenido verticalmente sobre el que empujas trozos de papel
Ian

44

Piensa en un dispensador de Pez . Ese es su modelo mental para una pila: último en entrar, primero en salir. Por lo tanto, agregar un elemento a una pila requiere empujar hacia abajo los elementos existentes para hacer espacio.

http://i.stack.imgur.com/VJkYi.jpg


2
mmmmmm ... Pez !!!
Steven A. Lowe

1
Iba a sugerir el modelo de una revista de munición, pero el dispensador de Pez es una imagen mental mucho más familiar. +1 y desearía poder votar más.
KeithS

Estoy tentado a -1 para Hello Kitty, pero no haría la respuesta y la analogía de la justicia. Entonces +1 de mi parte.
0xC0000022L

y así es como le explicas "Stack" a un niño :)
Chani

StackOverflow sería cuando intentas llenarlo con un paquete completo de Pez, y todo se sale de tus dedos antes de ponerlo para que se extienda por todo el lugar.
asombro

3

FIFO es una cola: el primero que se agrega al grupo es el primero que se atiende.

LIFO es una pila, como un montón de bandejas. Siempre tomas el que está en la parte superior de la pila.

El término empuje se usa cuando se agrega un artículo al LIFO / Pila, porque en algunas cafeterías la pila de bandejas está en una superficie cargada por resorte. A medida que se empujan más elementos en la pila, toda la pila se hunde más abajo.

Cuando el elemento superior / más nuevo se elimina de la pila, el superior se "saca" de la parte superior de la pila.


La pila de platos en una cafetería a menudo se usa para ilustrar cómo funciona una estructura de datos de la pila, pero ¿tiene alguna evidencia de que de ahí proviene la terminología?
Caleb

@Caleb, TAOCP Volumen 1 (p. 237 en la segunda edición) implica que sí, pero no da una cita. La página anterior habla sobre cómo los términos "apilar" y "cola" se están "convirtiendo gradualmente en terminología estándar", por lo que esta puede ser la referencia potencial más temprana.
mpdonadio

3

Las ilustraciones usando platos o bandejas de la cafetería, dispensadores de pez y montones de libros, todo vino más tarde. De Wikipedia: (con referencias)

"La pila se propuso por primera vez en 1946, en el diseño de la computadora de Alan M. Turing (quien usó los términos" enterrar "y" desenterrar ") como un medio para llamar y regresar de las subrutinas". El trabajo adicional y las patentes de otros siguieron en 1957. Las ilustraciones actuales de las pilas que usamos hoy en día pueden haber causado que los términos originales de entierro y desempate de Turing evolucionen a empujar y reventar. Quizás estos términos suenen mejor.

Encontrar exactamente dónde o cuándo sucedió esto es la respuesta a la pregunta del OP. Tal vez la respuesta esté enterrada en una de las referencias de Wikipedia como " Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschine zur Ausübung des Verfahrens ".

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.