可以使用 slice 實現如下:
type stack int
func (s stack) empty() bool
func (s *stack) push(v int)
func (s *stack)pop() int
type queue int
func (q queue) empty() bool
func (q *queue) enqueue(v int)
func (q *queue) dequeue() int
上面的寫法是正確的,但是不是最優的。
可以思考下,使用乙個值來計數,標識stack棧頂的位置,而不需要大量的記憶體變動。同樣,也可以用go的標準庫 container/list 來實現
如何寫乙個Stack?
1.棧是陣列 2.先進後出 3.出棧 4.入棧 手寫乙個雙向鍊錶 棧 public class stackpopandpush public stackpopandpush int lens 返回元素個數 public intsize 返回陣列長度,容量,棧資料長 private intcapaci...
如何使用乙個陣列實現乙個佇列呢?
下文是筆者講述使用陣列實現佇列效果的方法分享,如下所示 實現思路 設定乙個startindex和curindex及size三個變數,即可使用陣列實現乙個佇列效果,如下所示 package com.j a265.algorithm 使用陣列實現乙個佇列效果,佇列先進先出 public class ar...
用兩個棧(Stack)實現乙個佇列(Queue)
兩年前從網上看到一道面試題 用兩個棧 stack 實現乙個佇列 queue 覺得不錯,就經常拿來面試,幾年下來,做此題的應該有幾十人了。通過對面試者的表現和反應,有一些統計和感受,在此做個小結。用c 描述,題目大致是這樣的 已知下面stack類及其3個方法push pop和count,請用2個sta...