用棧實現佇列,實現Enqueue和Dequeue方法
佇列是先進先出,棧是先進後出,使用兩個棧來模擬佇列:
入隊就是入第一個棧,出隊是把第一個棧的元素全部出棧到第二個棧裡,然後第二個棧出棧,再把剩下的倒回第一個棧。
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> 1using System;
2using System.Collections;
3
4namespace Algorithm
5{
6 class Program
7 {
8 static void Main(string[] args)
9 {
10 Queueq = new Queue();
11 q.Enqueue(1);
12 q.Enqueue(2);
13 q.Enqueue(3);
14 q.Enqueue(4);
15 Console.WriteLine(q.Dequeue());
16 }
17 }
18 class Queue
19 {
20 private Stack s1=new Stack();
21 private Stack s2=new Stack();
22
23 public void Enqueue(object o)
24 {
25 s1.Push(o);
26 }
27 public object Dequeue()
28 {
29 while (s1.Count > 0)
30 {
31 s2.Push(s1.Pop());
32 }
33 object o = s2.Pop();
34 while (s2.Count > 0)
35 {
36 s1.Push(s2.Pop());
37 }
38 return o;
39 }
40 }
41}
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> 1using System;
2using System.Collections;
3
4namespace Algorithm
5{
6 class Program
7 {
8 static void Main(string[] args)
9 {
10 Queueq = new Queue();
11 q.Enqueue(1);
12 q.Enqueue(2);
13 q.Enqueue(3);
14 q.Enqueue(4);
15 Console.WriteLine(q.Dequeue());
16 }
17 }
18 class Queue
19 {
20 private Stack s1=new Stack();
21 private Stack s2=new Stack();
22
23 public void Enqueue(object o)
24 {
25 s1.Push(o);
26 }
27 public object Dequeue()
28 {
29 while (s1.Count > 0)
30 {
31 s2.Push(s1.Pop());
32 }
33 object o = s2.Pop();
34 while (s2.Count > 0)
35 {
36 s1.Push(s2.Pop());
37 }
38 return o;
39 }
40 }
41}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-466047/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用佇列實現棧佇列
- 用棧實現佇列佇列
- 9. 題目:對佇列實現棧&用棧實現佇列佇列
- 通過佇列實現棧OR通過棧實現佇列佇列
- Day 10| 232.用棧實現佇列 、 225. 用佇列實現棧佇列
- 用JavaScript實現棧與佇列JavaScript佇列
- 用2個棧實現佇列佇列
- 用兩個棧實現佇列佇列
- C#實現棧和佇列C#佇列
- leedcode-用佇列實現棧佇列
- leedcode-用棧實現佇列佇列
- 兩個棧實現佇列佇列
- 利用棧實現佇列(C語言實現)佇列C語言
- Java面試題:棧和佇列的實現Java面試題佇列
- 用佇列實現棧,用棧實現佇列,聽起來有點繞,都搞懂了就掌握了精髓!佇列
- 《劍指 Offer》棧實現佇列佇列
- 兩個棧實現佇列操作佇列
- 面試題之【用兩個棧實現佇列】面試題佇列
- 題目9:用兩個棧實現佇列佇列
- 力扣-232. 用棧實現佇列力扣佇列
- 資料結構-js實現棧和佇列資料結構JS佇列
- Java:基於LinkedList實現棧和佇列Java佇列
- 【ZJOF】用來個棧來實現一個佇列佇列
- LeetCode225. 用佇列實現棧LeetCode佇列
- 用 Rust 實現佇列Rust佇列
- 劍指offer | 09. 用兩個棧實現佇列佇列
- 劍指offer-用兩個棧實現佇列-php佇列PHP
- 實現無鎖的棧與佇列(4)佇列
- 實現無鎖的棧與佇列(3)佇列
- 實現無鎖的棧與佇列(1)佇列
- 實現無鎖的棧與佇列(2)佇列
- Python佇列的三種佇列實現方法Python佇列
- [每日一題] 第七題:用兩個棧實現佇列每日一題佇列
- redis之列表型別(list)——佇列和棧簡單實現Redis型別佇列
- 10月15日 棧和佇列實現迴文數字佇列
- LeetCode225.佇列實現棧LeetCode佇列
- 劍指offer(java實現)第5題“用兩個棧實現佇列”-牛客網Java佇列
- 詳細分析棧和佇列的資料結構的實現過程(Java 實現)佇列資料結構Java