เหตุใดการวางบางสิ่งบางอย่างลงบนสแต็กเรียกว่า“ push”


22

ตามที่http://dictionary.reference.com

ดัน

กริยา (ใช้กับวัตถุ)

  1. เพื่อกดหรือต้าน (สิ่ง) ด้วยกำลังเพื่อย้ายมันออกไป

  2. เพื่อย้าย (บางสิ่ง) ตามวิธีที่กำหนดโดยใช้กำลัง ซุก; ไดรฟ์: เพื่อผลักบางสิ่งไว้ข้างๆ ที่จะผลักดันเปิดประตู

  3. ที่จะทำให้เกิดผลหรือสำเร็จโดยการผลักสิ่งกีดขวางออกไป: ผลักทางผ่านฝูงชน

  4. ทำให้เกิดการขยายหรือโครงการ แรงผลักดัน

  5. เพื่อกดหรือกระตุ้นให้มีการกระทำหรือหลักสูตร: แม่ของเขาผลักเขาให้ได้งานทำ

IMO นี้เหมาะกับคิวFIFO มีคำอธิบายสำหรับเรื่องนี้?


2
.. ในอิสราเอลการเปรียบเทียบนั้นมีไว้สำหรับนิตยสารปืนในขณะที่คุณต้องกดกระสุนใน .. แต่ฉันคิดว่าฉันชอบตัวแบ่งเสียงที่ดีกว่า
GY

@GY - ฮ่า ๆ - ฉันมาที่นี่เพื่อพูดอย่างนั้น (สิ่ง Pez) ไอ้! วัฒนธรรมที่น่าสนใจที่นั่นในอิสราเอล ...
Edward Strange

ฉันเดาว่าเฉพาะวันนี้เท่านั้นฉันคือ FGITW!
Scott C Wilson

1
คำถามนี้ถูกถามและตอบใน StackOverflow - stackoverflow.com/questions/420315/stacks-why-push-and-pop พุชและป๊อปถูกกล่าวถึงทั้งคู่
Bratch

ต้องการแท็ก "ประวัติ"
Bratch

คำตอบ:


47

ตามตำนานแล้วสแต็คดั้งเดิมได้รับชื่อโดยการเปรียบเทียบกับสแต็คของอาหารในโรงอาหารของมหาวิทยาลัย: คุณวางไว้ด้านบนและสแต็ค (เต็มไปด้วยสปริง) ของจานจะลดลงเล็กน้อย ขึ้นเล็กน้อย ดังนั้น 'การผลัก' จึงได้รับความหมายของการปฏิบัติการลงแม้ว่าคุณจะไม่ได้กดลงบนจานจริง ๆ คุณแค่วางมันลงและแรงโน้มถ่วงก็ทำงานได้ "Pushdown stack" ยังคงเป็นวลีทั่วไปและสแต็คมีแนวโน้มที่จะลดลงในหน่วยความจำ (เช่นที่อยู่หน่วยความจำลดลง) แม้ว่าจะเป็นที่น่าสงสัยว่ามีส่วนเกี่ยวข้องกับกองจานหรือไม่


1
การขยายอาจเกิดขึ้นจากการกดลงอัตโนมัติ
Oded

11
@Oded ฉันค่อนข้างแน่ใจว่ามันเป็นอีกทางหนึ่ง ออโตเมติกแบบกดลงเป็นออโตเมติก จำกัด ที่เพิ่มขึ้นจากสต็อปดาวน์
Konrad Rudolph

และคุณก็รู้ว่าคนโง่ที่น่าสงสารบางคนกำลังเรียนรู้ว่าเพราะพีซีนับ "ขึ้น" ที่อยู่หน่วยความจำล่างจะอยู่ที่ด้านล่าง
ฟิลิป

ฉันรู้สึกว่าที่มาของเอกสารเกี่ยวข้องกับเดือยเอกสารเหล่านั้น คุณรู้ไหมว่ามีการตอกตะปูในแนวตั้งซึ่งคุณดันเศษกระดาษลงไป
เอียน

44

คิดเกี่ยวกับตู้ Pez นั่นคือรูปแบบจิตของคุณสำหรับสแต็ค - เข้าก่อนออกก่อน ดังนั้นการเพิ่มไอเท็มลงในสแต็กคุณต้องกดไอเท็มที่มีอยู่ลงเพื่อให้มีที่ว่าง

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


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

1
ฉันจะแนะนำรุ่นของนิตยสารกระสุน แต่เครื่องจ่าย Pez เป็นภาพจิตที่เหมาะสำหรับครอบครัวมากกว่า +1 และฉันหวังว่าฉันจะโหวตได้มากขึ้น
KeithS

ฉันถูกล่อลวงให้ -1 สำหรับ hello kitty แต่มันจะไม่ทำคำตอบและความยุติธรรมที่คล้ายคลึงกัน +1 จากฉัน
0xC0000022L

และนี่คือวิธีการที่คุณอธิบาย "สแต็ค" เพื่อเด็ก :)
Chani

StackOverflow จะเป็นเมื่อคุณพยายามเติมด้วย Pez ทั้งก้อนและสิ่งทั้งนิ้วมือของคุณก่อนที่คุณจะใส่เข้าไปในนั้นจึงกระจายไปทั่วสถานที่
กลัว

3

FIFOเป็นคิว - คนแรกที่ถูกเพิ่มเข้าไปในกลุ่มเป็นคนแรกที่ให้บริการ

LIFOเป็นแบบกองซ้อนเหมือนถาด คุณมักจะนำหนึ่งจากด้านบนของสแต็ค

คำว่าพุชจะใช้เมื่อเพิ่มรายการใน LIFO / Stack เนื่องจากในโรงอาหารบางแห่งจะมีถาดสแต็คอยู่บนพื้นผิวที่สปริงโหลด เมื่อมีรายการอื่นถูกผลักลงบนสแต็กมากทั้งกองก็จะจมลง

เมื่อรายการบน / ใหม่ล่าสุดถูกลบออกจากสแต็ครายการบนสุดคือ "โผล่" ออกจากด้านบนของสแต็ก


สแต็กของเพลตในโรงอาหารมักใช้เพื่อแสดงให้เห็นว่าโครงสร้างข้อมูลสแต็คทำงานอย่างไร แต่คุณมีหลักฐานที่แสดงว่าคำศัพท์มาจากไหน
Caleb

@Caleb, TAOCP เล่ม 1 (หน้า 237 ในฉบับที่สอง) บอกเป็นนัยว่ามันทำ แต่ไม่ได้ให้การอ้างอิง หน้าก่อนหน้าพูดถึงวิธีที่คำว่า "สแต็ค" และ "คิว" เป็น "ค่อยๆกลายเป็นคำศัพท์มาตรฐาน" ดังนั้นนี่อาจเป็นการอ้างอิงที่อาจเกิดขึ้นเร็วที่สุด
mpdonadio

3

ภาพประกอบโดยใช้แผ่นโรงอาหารหรือถาดตู้ใส่หนังสือและกองหนังสือทั้งหมดมาในภายหลัง จากWikipedia: (มีการอ้างอิง)

"สแต็กถูกเสนอครั้งแรกในปี 2489 ในการออกแบบคอมพิวเตอร์ของอลันเอ็มทัวริง (ซึ่งใช้คำว่า" ฝัง "และ" unbury ") เป็นวิธีการโทรและกลับจากรูทีนย่อย" งานและสิทธิบัตรอื่น ๆ เพิ่มเติมตามมาในปี 1957 ภาพประกอบปัจจุบันของกองที่เราใช้ในวันนี้อาจทำให้ข้อกำหนดดั้งเดิมของการฝังศพและไม่ได้รับการพัฒนาของทัวริงกลายเป็นการผลักดัน บางทีคำเหล่านี้อาจฟังดูดีกว่า

การค้นหาว่าสิ่งนี้เกิดขึ้นที่ไหนหรือเมื่อไหร่คือคำตอบสำหรับคำถามของ OP อาจเป็นคำตอบที่ถูกฝังอยู่ในแหล่งอ้างอิง Wikipedia อย่างเช่น " Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschine zur Ausübung des Verfahrens "

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.