队列Queue 先进先出 栈Stack 先进后出
2016-04-20 12:04
483 查看
1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//队列的特点就是先进先出
Queue<string> queue = new Queue<string>();
queue.Enqueue("张三"); //入队 将对象添加到 System.Collections.Generic.Queue<T> 的结尾处。
queue.Enqueue("李四");
queue.Enqueue("王五");
int queueCount = queue.Count(); //返回序列中元素的数量
string name = queue.Dequeue(); //出队 把队首的元素移除,并将这移除的元素返回。
Console.WriteLine(name); //输出“张三”
name = queue.Dequeue(); //因为“张三”已经被移除了。所以现在是“李四”是在队首了
Console.WriteLine(name); //输出“李四”
name = queue.Dequeue(); //因为“李四”也被移除了,所以队列中就只剩下王五了。
Console.WriteLine(name); //输出“王五”
//------------------------------------------------------------
//栈的特点就是先进后出(了解下就可以了,用的不多)
Stack<string> stack = new Stack<string>();
stack.Push("张三"); //入栈, 将对象插入 System.Collections.Generic.Stack<T> 的顶部。
stack.Push("李四");
stack.Push("王五");
int stackCount= stack.Count(); //返回栈中的数量
string name1 = stack.Pop(); //出栈。把栈首的元素移除,并将移除的元素返回。
Console.WriteLine(name); //输出:“王五”
name1 = stack.Pop();
Console.WriteLine(name1);//输出:“李四”
name1 = stack.Pop();
Console.WriteLine(name1);//输出:“张三”
//name1 = stack.Peek(); //这是返回栈首的对象,但是不将它移除
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//队列的特点就是先进先出
Queue<string> queue = new Queue<string>();
queue.Enqueue("张三"); //入队 将对象添加到 System.Collections.Generic.Queue<T> 的结尾处。
queue.Enqueue("李四");
queue.Enqueue("王五");
int queueCount = queue.Count(); //返回序列中元素的数量
string name = queue.Dequeue(); //出队 把队首的元素移除,并将这移除的元素返回。
Console.WriteLine(name); //输出“张三”
name = queue.Dequeue(); //因为“张三”已经被移除了。所以现在是“李四”是在队首了
Console.WriteLine(name); //输出“李四”
name = queue.Dequeue(); //因为“李四”也被移除了,所以队列中就只剩下王五了。
Console.WriteLine(name); //输出“王五”
//------------------------------------------------------------
//栈的特点就是先进后出(了解下就可以了,用的不多)
Stack<string> stack = new Stack<string>();
stack.Push("张三"); //入栈, 将对象插入 System.Collections.Generic.Stack<T> 的顶部。
stack.Push("李四");
stack.Push("王五");
int stackCount= stack.Count(); //返回栈中的数量
string name1 = stack.Pop(); //出栈。把栈首的元素移除,并将移除的元素返回。
Console.WriteLine(name); //输出:“王五”
name1 = stack.Pop();
Console.WriteLine(name1);//输出:“李四”
name1 = stack.Pop();
Console.WriteLine(name1);//输出:“张三”
//name1 = stack.Peek(); //这是返回栈首的对象,但是不将它移除
Console.ReadKey();
}
}
}
相关文章推荐
- UIBezierPath贝塞尔弧线常用方法记
- LeetCode 52. N-Queens II
- rocketmq问题汇总-如何将特定消息发送至特定queue,消费者从特定queue消费
- iOS开发之UIView的生命周期是什么样的?
- Google Protobuf Guide
- com.android.build.transform.api.TransformException
- 算法Sedgewick第四版-第1章基础-024-M/M/1 queue
- HDU4027(Can you answer these queries?)
- 自定义UITableViewCell的两种方式
- iOS开发调整UILabel的行间距
- 【UE4学习】06——蓝图常用函数
- 算法Sedgewick第四版-第1章基础-022一QueueWithTwoStacks
- 编译原理:用bison实现huiwen.y和huiwen.lex判断是否为回文
- java序列化和serialVersionUID
- String、stringbuffer与stringbuilder的区别
- UGUI实现的虚拟摇杆,可改变摇杆位置
- BlockingQueue的使用
- [Form Builder]POST 与 commit_form 的区别
- iOS7之后,关于NavigationBar存在时,UIScrollView内容发生偏移的问题
- Android 版本与 Bluetooth 版本之间的关系