用佇列實現棧

2021-09-27 09:26:45 字數 927 閱讀 4022

class mystack 

//移除棧頂元素

int pop()

int d = q.front();//這個數字就是棧頂元素

q.pop();

return d;

} //獲取棧頂元素

int top()

int d = q.front();//這個數字就是棧頂元素

q.pop();

q.push(d);//只是獲取棧頂元素,並不需要刪除

return d;//返回棧頂元素

} //判斷棧是否為空

bool empty()

else

}};

我們分模組進行分析一下:

1.push(x) – 元素 x 入棧

void push(int x)

2.pop() – 移除棧頂元素

棧的棧頂元素相當於佇列最**的乙個元素。要想移除棧頂元素,必須將佇列前邊的元素全部移出去依次放到隊尾

int pop()

int d = q.front();//這個數字就是棧頂元素

q.pop();

return d;

}

3.top() – 獲取棧頂元素(和移除棧頂元素一樣)

int top()

int d = q.front();//這個數字就是棧頂元素

q.pop();

q.push(d);//只是獲取棧頂元素,並不需要刪除

return d;//返回棧頂元素

}

4.empty() – 返回棧是否為空

bool empty()

else

}};

用棧實現佇列 用佇列實現棧

棧的特點 filo firstinlastout 僅能從棧頂插入,刪除元素。最基本的介面包括push 從棧頂壓入元素 pop 從棧頂彈出元素 佇列的特點 fifo firstinfirstout 僅能從隊頭刪除元素,從隊尾插入元素。最基本的介面包括enque 從隊尾插入元素 deque 從隊頭刪除元...

用棧實現佇列,用佇列實現棧。好玩!!!

因為在資料結構中,棧和佇列長得實在是太像了,將他們拿來比較是不可避免的,棧 後進先出,而佇列 先進先出。同樣是只能在一端進行操作,那麼問題來了,能相互實現?能不能得好好分析一下嘛,如果是用兩個棧來實現佇列,好像這操作可以哦。一下,你就明白!顯然用兩個棧可以實現佇列的功能,就是借助另乙個棧來中轉一下,...

232 用棧實現佇列 225 用佇列實現棧

用棧實現佇列 佇列是先進先出,實現佇列的最直觀的方法是用鍊錶。但本題是要求使用棧。本題兩個stack相互倒,負負得正 class myqueue def init self self.instack self.outstack defpush self,x def pop self if len s...