下面是关于C#中的队列Queue
栈和队列是什么?
-
栈(Stack)是一种有序的数据集合,新添加的或待删除的元素都保存移位顶部,称作栈顶,而现有的元素都在栈底。这种操作叫做LIFO(Last in First Out,后进先出)。栈的应用极为广泛,如比较好的表达中缀表达式、进行函数调用和返回数据等操作。
-
队列(Queue)是一种有序的数据集合,类似于排队,每个元素都被添加在队尾,而从队列中移除元素的操作则是从队首进行的,即FIFO(First In First Out,先进先出)。
使用堆栈Stack
C#的Stack
Stack<string> myStack = new Stack<string>();
堆栈的常见操作如下:
- Push(T item):将item添加进堆栈。
- Pop():移除并返回堆栈的顶部元素。
- Peek():返回堆栈的顶部元素,而不移除它。
- Count:获取堆栈中的元素数量。
以下代码展示了一些堆栈的常见操作,并输出了堆栈中的元素:
Stack<string> myStack = new Stack<string>();
myStack.Push("Stack");
myStack.Push("is");
myStack.Push("a");
myStack.Push("great");
myStack.Push("data");
myStack.Push("structure");
// 输出堆栈中的元素
foreach (string item in myStack)
{
Console.WriteLine(item);
}
// 移除并输出堆栈的顶部元素
Console.WriteLine(myStack.Pop());
// 输出堆栈中的元素
foreach (string item in myStack)
{
Console.WriteLine(item);
}
// 返回堆栈的顶部元素,而不移除它
Console.WriteLine(myStack.Peek());
// 输出堆栈中的元素
foreach (string item in myStack)
{
Console.WriteLine(item);
}
// 获取堆栈中的元素数量
Console.WriteLine("元素数量:" + myStack.Count);
这段代码的输出结果如下:
structure
data
great
a
is
Stack
structure
data
great
a
is
Stack
Stack
structure
data
great
a
is
使用队列Queue
C#的Queue
Queue<string> myQueue = new Queue<string>();
队列的常见操作如下:
- Enqueue(T item):在队列末尾添加一个元素。
- Dequeue():移除并返回队列的第一个元素。
- Peek():返回队列的第一个元素,而不移除它。
- Count:获取队列中的元素数量。
以下代码展示了一些队列的常见操作,并输出了队列中的元素:
Queue<string> myQueue = new Queue<string>();
myQueue.Enqueue("Queue");
myQueue.Enqueue("is");
myQueue.Enqueue("a");
myQueue.Enqueue("great");
myQueue.Enqueue("data");
myQueue.Enqueue("structure");
// 输出队列中的元素
foreach (string item in myQueue)
{
Console.WriteLine(item);
}
// 移除并输出队列的第一个元素
Console.WriteLine(myQueue.Dequeue());
// 输出队列中的元素
foreach (string item in myQueue)
{
Console.WriteLine(item);
}
// 返回队列的第一个元素,而不移除它
Console.WriteLine(myQueue.Peek());
// 输出队列中的元素
foreach (string item in myQueue)
{
Console.WriteLine(item);
}
// 获取队列中的元素数量
Console.WriteLine("元素数量:" + myQueue.Count);
这段代码的输出结果如下:
Queue
is
a
great
data
structure
is
a
great
data
structure
is
a
great
data
structure
元素数量:5
这就是关于C#中的队列Queue
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中的队列Queue