队列(Queue):先进先出
举例:
static void Main(string[] args)
{
Queue q = new Queue();
q.Enqueue('A'); //插入队列
q.Enqueue('B');
q.Enqueue('C');
foreach (char c in q)
Console.Write(c + " "); //输出 A B C
q.Dequeue(); //从队列中移除(先进先出)
Console.WriteLine();
foreach (char c in q)
Console.Write(c + " "); // 输出B C
Console.ReadLine();
}
栈(Stack):后进先出
static void Main(string[] args)
{
Stack q = new Stack();
q.Push('A'); // 压入栈
q.Push('B');
q.Push('C');
foreach (char c in q)
Console.Write(c + " "); // 输出 C B A
q.Pop(); // 栈中移除
Console.WriteLine();
foreach (char c in q) // 输出B A
Console.Write(c + " ");
Console.ReadLine();
}
链表(LinkedList):前后相关连
static void Main(string[] args)
{
LinkedList<string> linked = new LinkedList<string>();
linked.AddFirst("first"); // 插入到开头
linked.AddLast("end");// 插入到结尾
foreach (string s in linked)
{
Console.Write(s + " "); // first end
}
Console.WriteLine();
linked.AddAfter(linked.Find("first"), "AddAfterfirst"); // 插入指定的first后
linked.AddBefore(linked.Find("first"), "AddBeforefirst");// 插入指定的first前面
foreach (string s in linked)
{
Console.Write(s + " ");//AddBeforefirst first AddAfterfirst end
}
Console.ReadLine();
}