Tại sao lại đặt thứ gì đó lên ngăn xếp có tên là đẩy đẩy?


22

Theo http://dipedia.reference.com

đẩy

động từ (được sử dụng với đối tượng)

  1. nhấn hoặc chống lại (một vật) bằng vũ lực để di chuyển nó đi.

  2. để di chuyển (một cái gì đó) theo một cách cụ thể bằng cách tác dụng lực; xô; lái xe: để đẩy một cái gì đó sang một bên; để đẩy cửa mở .

  3. để thực hiện hoặc hoàn thành bằng cách đẩy các chướng ngại vật sang một bên: đẩy một người đi qua đám đông.

  4. gây ra để mở rộng hoặc dự án; đẩy.

  5. để nhấn hoặc thúc giục một số hành động hoặc khóa học: Mẹ của anh ấy đã thúc đẩy anh ấy để có được một công việc.

IMO này phù hợp với hàng đợi FIFO . Có một lời giải thích cho điều này?


2
Chà .. ở Israel sự tương tự là dành cho một tạp chí súng vì bạn cần phải bắn đạn vào .. nhưng tôi nghĩ tôi thích người phát tán pez hơn.
GY

@GY - LOL - Tôi đến đây để nói chính xác điều đó (điều Pez). ĐỒ KHỐN! Văn hóa thú vị ở Israel mặc dù ...
Edward Strange

Tôi đoán nếu chỉ cho hôm nay tôi là FGITW!
Scott C Wilson

1
Câu hỏi này đã được hỏi và trả lời trên stackoverflow - stackoverflow.com/questions/420315/stacks-why-push-and-pop . Đẩy và pop đều được thảo luận.
Bratch

Cần thẻ "lịch sử".
Bratch

Câu trả lời:


47

Theo truyền thuyết, ngăn xếp ban đầu nhận được tên của nó bằng cách tương tự với các chồng bát đĩa trong căn tin của trường đại học: bạn đặt một cái lên trên, và chồng bát đĩa (lò xo) đi xuống một chút, bạn lấy đi một cái và nó bật ra lên một chút. Do đó, 'đẩy' đã nhận được một ý nghĩa của hoạt động đi xuống, mặc dù bạn không thực sự ấn xuống đĩa - bạn chỉ cần đặt nó xuống và trọng lực thực hiện công việc. "Ngăn xếp đẩy xuống" vẫn là một cụm từ phổ biến và các ngăn xếp có xu hướng phát triển xuống trong bộ nhớ (nghĩa là giảm địa chỉ bộ nhớ), mặc dù điều đó có nghi ngờ liệu điều đó có liên quan gì đến ngăn xếp bát đĩa hay không.


1
Pushdown có thể bắt nguồn từ Pushdown Automata.
Oded

11
@Oded Tôi khá chắc chắn đó là cách khác. Máy tự động đẩy xuống là máy tự động hữu hạn được tăng cường bởi ngăn xếp đẩy xuống.
Konrad Rudolph

Và bạn biết một số kẻ ngốc nghèo ngoài kia đang học được điều đó, bởi vì PC tính "lên", địa chỉ bộ nhớ thấp hơn ở phía dưới.
Philip

Tôi đã có ấn tượng rằng nguồn gốc là một cái gì đó để làm với những đột biến tài liệu đó. Bạn biết đấy, một cái đinh giữ thẳng đứng mà bạn đẩy các mẩu giấy lên
Ian

44

Hãy suy nghĩ về một bộ phân phối Pez . Đó là mô hình tinh thần của bạn cho một ngăn xếp - cuối cùng vào trước ra trước. Vì vậy, việc thêm một mục vào ngăn xếp đòi hỏi bạn phải đẩy các mục hiện có xuống để nhường chỗ.

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


2
Mmmmmm ... Pez !!!
Steven A. Lowe

1
Tôi sẽ đề xuất mô hình của một tạp chí đạn, nhưng bộ phân phối Pez là một bức tranh tinh thần thân thiện với gia đình hơn nhiều. +1 và tôi ước tôi có thể nâng cao hơn nữa.
KeithS

Tôi bị cám dỗ -1 cho hello kitty, nhưng nó sẽ không trả lời và công lý tương tự. Vì vậy, +1 từ tôi.
0xC0000022L

và đây là cách bạn giải thích "Stack" cho một đứa trẻ :)
Chani

StackOverflow sẽ là khi bạn cố gắng lấp đầy nó bằng cả gói Pez, và toàn bộ thứ sẽ tách ra khỏi ngón tay của bạn trước khi bạn đặt nó vào để nó lan ra khắp nơi.
kinh ngạc

3

FIFO là một hàng đợi - cái đầu tiên được thêm vào nhóm là cái đầu tiên được phục vụ.

LIFO là một Stack - giống như một loạt các khay. Bạn luôn lấy cái từ trên cùng của ngăn xếp.

Thuật ngữ đẩy được sử dụng khi thêm một vật phẩm vào LIFO / Stack, bởi vì tại một số quán ăn, chồng khay nằm trên bề mặt lò xo. Khi nhiều vật phẩm được đẩy lên ngăn xếp, toàn bộ ngăn xếp chìm xuống thấp hơn.

Khi mục trên cùng / mới nhất được xóa khỏi ngăn xếp, mục trên cùng sẽ được "bật" khỏi đầu ngăn xếp.


Chồng đĩa trong một quán ăn thường được sử dụng để minh họa cách cấu trúc dữ liệu ngăn xếp hoạt động, nhưng bạn có bằng chứng nào cho thấy thuật ngữ đó xuất phát từ đâu không?
Caleb

@Caleb, TAOCP Tập 1 (trang 237 trong phiên bản thứ hai) ngụ ý rằng nó có, nhưng không đưa ra một trích dẫn. Trang trước nói về cách các thuật ngữ "ngăn xếp" và "xếp hàng" "dần trở thành thuật ngữ chuẩn", vì vậy đây có thể là tài liệu tham khảo tiềm năng sớm nhất.
mpdon Arena

3

Các hình minh họa sử dụng đĩa hoặc khay ăn, hộp đựng pez và đống sách đều xuất hiện sau đó. Từ Wikipedia: (có tài liệu tham khảo)

"Ngăn xếp lần đầu tiên được đề xuất vào năm 1946, trong thiết kế máy tính của Alan M. Turing (người đã sử dụng thuật ngữ" chôn "và" unbury ") như một phương tiện để gọi và trở về từ chương trình con." Công việc bổ sung và bằng sáng chế của những người khác được theo dõi vào năm 1957. Các minh họa hiện tại về các ngăn xếp mà chúng ta sử dụng ngày nay có thể đã khiến các điều khoản ban đầu của Turing và unbury phát triển thành đẩy và pop. Có lẽ những điều khoản này chỉ nghe tốt hơn.

Tìm chính xác nơi hoặc khi điều này xảy ra là câu trả lời cho câu hỏi của OP. Có lẽ câu trả lời bị chôn vùi trong một trong những tài liệu tham khảo trên Wikipedia như " Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschine zur Auszigung des Verfahlings ."

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.