mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Update 0225.用队列实现栈.md 增加C#单队列实现方式
This commit is contained in:
@ -1046,6 +1046,8 @@ class MyStack() {
|
||||
|
||||
### C#:
|
||||
|
||||
> 双队列
|
||||
|
||||
```csharp
|
||||
public class MyStack {
|
||||
Queue<int> queue1;
|
||||
@ -1080,6 +1082,54 @@ public class MyStack {
|
||||
}
|
||||
```
|
||||
|
||||
> 单队列
|
||||
|
||||
```c#
|
||||
/*
|
||||
* @lc app=leetcode id=225 lang=csharp
|
||||
* 版本二:单队列
|
||||
* [225] Implement Stack using Queues
|
||||
*/
|
||||
|
||||
// @lc code=start
|
||||
public class MyStack {
|
||||
Queue<int> myQueue;
|
||||
public MyStack() {
|
||||
myQueue = new Queue<int>();
|
||||
}
|
||||
|
||||
public void Push(int x) {
|
||||
myQueue.Enqueue(x);
|
||||
}
|
||||
|
||||
//使用一个队列实现
|
||||
public int Pop() {
|
||||
//一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。
|
||||
for (var i = 0; i < myQueue.Count-1; i++)
|
||||
{
|
||||
myQueue.Enqueue(myQueue.Dequeue());
|
||||
}
|
||||
return myQueue.Dequeue();
|
||||
}
|
||||
|
||||
//复用Pop()的代码
|
||||
public int Top() {
|
||||
int res = Pop();
|
||||
myQueue.Enqueue(res);
|
||||
return res;
|
||||
}
|
||||
|
||||
public bool Empty() {
|
||||
return (myQueue.Count == 0);
|
||||
}
|
||||
}
|
||||
|
||||
// @lc code=end
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### PHP:
|
||||
|
||||
> 双队列
|
||||
@ -1203,3 +1253,4 @@ impl MyStack {
|
||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||
</a>
|
||||
|
||||
|
Reference in New Issue
Block a user