using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
public class Stac<T>
{
private Queue<T> queue1 = new Queue<T>();
private Queue<T> queue2 = new Queue<T>();
private int count = 0;
public int Count
{
get { return count; }
}
public void Push(T t)
{
queue1.Enqueue(t);
count++;
Console.WriteLine("Push:"+t.ToString());
}
public T Pop()
{
T t;
while(queue1.Count!=1)
{
queue2.Enqueue(queue1.Dequeue());
}
t = queue1.Dequeue();
while(queue2.Count!=0)
{
queue1.Enqueue(queue2.Dequeue());
}
count--;
Console.WriteLine("Pop:{0}",t.ToString());
return t;
}
}
public class StaQueue<T>
{
private Stack<T> stack1 = new Stack<T>();
private Stack<T> stack2 = new Stack<T>();
private int count = 0;
public int Count
{
get { return count; }
}
public void Enqueue(T t)
{
stack1.Push(t);
count++;
Console.WriteLine("Enqueue: " + t.ToString());
}
public T Dequeue()
{
T t;
while (stack1.Count != 1)
{
stack2.Push(stack1.Pop());
}
t = stack1.Pop();
while (stack2.Count != 0)
{
stack1.Push(stack2.Pop());
}
count--;
Console.WriteLine("Dequeue: " + t.ToString());
return t;
}
}
class Test
{
static void Main()
{
Stac<string> st = new Stac<string>();
string[] ie = { "a", "b", "c", "d" };
foreach (string item in ie)
{
st.Push(item);
}
Console.WriteLine();
while (st.Count != 0)
{
st.Pop();
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
public class Stac<T>
{
private Queue<T> queue1 = new Queue<T>();
private Queue<T> queue2 = new Queue<T>();
private int count = 0;
public int Count
{
get { return count; }
}
public void Push(T t)
{
queue1.Enqueue(t);
count++;
Console.WriteLine("Push:"+t.ToString());
}
public T Pop()
{
T t;
while(queue1.Count!=1)
{
queue2.Enqueue(queue1.Dequeue());
}
t = queue1.Dequeue();
while(queue2.Count!=0)
{
queue1.Enqueue(queue2.Dequeue());
}
count--;
Console.WriteLine("Pop:{0}",t.ToString());
return t;
}
}
public class StaQueue<T>
{
private Stack<T> stack1 = new Stack<T>();
private Stack<T> stack2 = new Stack<T>();
private int count = 0;
public int Count
{
get { return count; }
}
public void Enqueue(T t)
{
stack1.Push(t);
count++;
Console.WriteLine("Enqueue: " + t.ToString());
}
public T Dequeue()
{
T t;
while (stack1.Count != 1)
{
stack2.Push(stack1.Pop());
}
t = stack1.Pop();
while (stack2.Count != 0)
{
stack1.Push(stack2.Pop());
}
count--;
Console.WriteLine("Dequeue: " + t.ToString());
return t;
}
}
class Test
{
static void Main()
{
Stac<string> st = new Stac<string>();
string[] ie = { "a", "b", "c", "d" };
foreach (string item in ie)
{
st.Push(item);
}
Console.WriteLine();
while (st.Count != 0)
{
st.Pop();
}
}
}
}