Queue(队列)是先进先出的集合; Stack(堆栈)是后进先出的集合.
Queue 的主要成员:
/* 属性 */
Count //元素数
/* 方法 */
Clear() //清空
Contains() //是否包含
Dequeue() //出列
Enqueue() //入列
Peek() //获取将要出列的
Stack 的主要成员:
/* 属性 */
Count //
/* 方法 */
Clear() //
Contains() //
Peek() //获取将要出栈的
Pop() //出栈
Push() //压栈
Queue 测试:
protected void Button1_Click(object sender, EventArgs e)
{
Queue queue = new Queue();
queue.Enqueue("abc");
queue.Enqueue(123);
queue.Enqueue(true);
string str = "";
foreach (object obj in queue)
{
str += obj.ToString() + "; ";
}
TextBox1.Text = str; //abc; 123; True;
}
protected void Button2_Click(object sender, EventArgs e)
{
Queue queue = new Queue();
queue.Enqueue("AA");
queue.Enqueue("BB");
queue.Enqueue("CC");
queue.Enqueue("DD");
string s1 = queue.Dequeue().ToString(); //AA
int n1 = queue.Count; //3
string s2 = queue.Peek().ToString(); //BB
int n2 = queue.Count; //3
string s3 = queue.Dequeue().ToString(); //BB
int n3 = queue.Count; //2
queue.Clear();
int n4 = queue.Count; //0
TextBox1.Text = string.Concat(s1, "\n", n1, "\n", s2, "\n", n2, "\n", s3, "\n", n3, "\n", n4);
}
Stack 测试:
protected void Button1_Click(object sender, EventArgs e)
{
Stack stack = new Stack();
stack.Push("AA");
stack.Push("BB");
stack.Push("CC");
string s1 = stack.Pop().ToString(); //CC
stack.Push("DD");
string s2 = stack.Pop().ToString(); //DD
string s3 = stack.Peek().ToString(); //BB
string s4 = stack.Pop().ToString(); //BB
int n = stack.Count; //1
bool b = stack.Contains("AA"); //True
TextBox1.Text = string.Concat(s1, "\n", s2, "\n", s3, "\n", s4, "\n", n, "\n", b);
}