使用佇列實現棧的下列操作:
說明:
思路:主要關鍵點在於掌握linkedlist 的常用函式,並對其按佇列和棧的特點進行功能組合。
class linkedlist傳送門
主要細節體現在push()
,每當需要push乙個值進入到棧中時:
linklist會先把該值放在隊尾
把頭節點摘下(queue.remove()
)放在隊尾
對第二步迴圈(佇列長度-1
)次
做完之後新加入的節點就會變成頭節點。
這樣做使得每次加入新元素都會按棧的順序重新排列順序。之後的pop和top用poll()
和peek()
輸出或檢視頭節點即可。
class
mystack
public
void
push
(int x)
public
intpop()
public
inttop()
public
boolean
empty()
}
232 用棧實現佇列 225 用佇列實現棧
用棧實現佇列 佇列是先進先出,實現佇列的最直觀的方法是用鍊錶。但本題是要求使用棧。本題兩個stack相互倒,負負得正 class myqueue def init self self.instack self.outstack defpush self,x def pop self if len s...
力扣 225 用佇列實現棧
一 題目描述 使用佇列實現棧的下列操作 注意 二 解題思路 建立兩個佇列a和b。入棧 將新元素直接入a佇列即可。出棧 將a中的元素轉到b中,當a中只有乙個元素時,出隊即可。然後交換a和b的身份。取棧頂元素 將a中的元素轉到b中,當a中只有乙個元素時,取出最後乙個元素出隊,然後將其入b佇列。然後交換a...
力扣 225題用佇列實現棧
使用佇列實現棧的下列操作 push x 元素 x 入棧 pop 移除棧頂元素 top 獲取棧頂元素 empty 返回棧是否為空 注意 你只能使用佇列的基本操作 也就是 push to back,peek pop from front,size,和 is empty 這些操作是合法的。你所使用的語言也...