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); }