「隊列」或FIFO是最常見的數據結構之一,在許多語言和框架中都有本地實現。但是,關於如何命名基本隊列操作似乎並沒有什麼共識。幾種流行的語言進行的調查顯示:隊列操作/ API的術語/命名約定?
- 的Python:PUT/GET
- C#,QT:入隊/出隊
- 紅寶石,C++ STD:PUSH/POP
- 的Java:添加/刪除
如果需要實現一個隊列(比如說,在一些沒有本地隊列實現的嵌入式平臺中),那麼什麼樣的命名約定是最好的?入隊/出隊似乎是最明確的,但是很羅嗦; put/get簡潔明瞭,但沒有提供關於操作FIFO特性的任何提示;推/流行似乎是建議堆棧操作,而不是隊列操作。
爲什麼不只是有bish()bosh():S TAOCP也許是爭議解決的參考? – 2009-05-29 17:26:00
我相信流行的選擇是`enqueue(element:Element):void`和`dequeue():Element`。不過,我傾向於使用`add(element:Element)`和`next():Element`來編寫儘可能多的DS /算法類,因爲這些方法也在其他DS /算法中共享。 **這樣一來,實施者就不需要知道DS的內部結構,並且可以更容易地使用SOLID的Liskov Substitution Principle **。否則,你只需要一個適配器,但我都是爲了改變這個規範的約定。 – Cody 2018-03-07 18:51:04