Update 0225.用队列实现栈.md 增加C#单队列实现方式

This commit is contained in:
Chenxue3
2024-01-06 23:51:02 +13:00
parent 6b0cc1d5ff
commit 93ab9befe8

View File

@ -1046,6 +1046,8 @@ class MyStack() {
### C#: ### C#:
> 双队列
```csharp ```csharp
public class MyStack { public class MyStack {
Queue<int> queue1; 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: ### PHP:
> 双队列 > 双队列
@ -1203,3 +1253,4 @@ impl MyStack {
<a href="https://programmercarl.com/other/kstar.html" target="_blank"> <a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/> <img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a> </a>