首页 > 编程语言 >4-4-1.C# 数据容器 - Queue(Queue 的定义、Queue 元素的基本操作、Queue 元素的遍历、Queue 的常用方法、Queue 注意事项)

4-4-1.C# 数据容器 - Queue(Queue 的定义、Queue 元素的基本操作、Queue 元素的遍历、Queue 的常用方法、Queue 注意事项)

时间:2024-11-11 18:16:47浏览次数:3  
标签:Console nums 元素 Queue Enqueue WriteLine 基本操作

Queue 概述

  1. Queue<T> 遵循先进先出的规则存储元素

  2. Queue<T> 支持泛型,可以指定存储的元素的类型

  3. Queue<T> 不是线程安全的,在多线程环境中需要谨慎使用


一、Queue 的定义

  1. 定义 Queue
Queue<int> nums = new Queue<int>();
  1. 定义 Queue 并填充一些元素
Queue<int> nums = new Queue<int>(new int[] { 1, 2, 3, 4, 5 });

二、Queue 元素的基本操作

1、Queue 元素的添加
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
2、Queue 元素的访问
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

Console.WriteLine(nums.Dequeue());
# 输出结果

1
3、Queue 元素的查看
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

Console.WriteLine(nums.Peek());
# 输出结果

1

三、Queue 元素的遍历

Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

foreach (int num in nums)
{
    Console.WriteLine(num);
}
# 输出结果

1
2
3

四、Queue 的常用方法

1、Queue 元素的删除
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

Console.WriteLine("删除元素之前");
Console.WriteLine(nums.Count);

nums.Dequeue();

Console.WriteLine("删除元素之后");
Console.WriteLine(nums.Count);
# 输出结果

删除元素之前
3
删除元素之后
2
2、Queue 大小的获取
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

Console.WriteLine(nums.Count);
# 输出结果

3
3、Queue 元素的清空
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

Console.WriteLine("清空元素之前");
Console.WriteLine(nums.Count);

nums.Clear();

Console.WriteLine("清空元素之后");
Console.WriteLine(nums.Count);
# 输出结果

清空元素之前
3
清空元素之后
0

五、Queue 注意事项

  1. Dequeue 方法是对 Queue 元素的访问(删除),它会导致 Queue 的改变,它会返回并移除 Queue 中的第一个元素
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

Console.WriteLine("调用 Dequeue 方法之前");
Console.WriteLine(nums.Count);

int num = nums.Dequeue();

Console.WriteLine("调用 Dequeue 方法之前");
Console.WriteLine(nums.Count);
# 输出结果

调用 Dequeue 方法之前
3
调用 Dequeue 方法之前
2
  1. Peek 方法是对 Queue 元素的查看,它不会导致 Queue 的改变,它会返回 Queue 中的第一个元素,但不会移除该元素
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

Console.WriteLine("调用 Peek 方法之前");
Console.WriteLine(nums.Count);

int num = nums.Peek();

Console.WriteLine("调用 Peek 方法之前");
Console.WriteLine(nums.Count);
# 输出结果

调用 Peek 方法之前
3
调用 Peek 方法之前
3
  1. Queue 元素的遍历不会导致 Queue 的改变
Queue<int> nums = new Queue<int>();

nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);

Console.WriteLine("Queue 元素的遍历之前");
Console.WriteLine(nums.Count);

foreach (int num in nums) { }

Console.WriteLine("Queue 元素的遍历之后");
Console.WriteLine(nums.Count);
# 输出结果

Queue 元素的遍历之前
3
Queue 元素的遍历之后
3

标签:Console,nums,元素,Queue,Enqueue,WriteLine,基本操作
From: https://blog.csdn.net/weixin_52173250/article/details/143692282

相关文章

  • 4-3-1.C# 数据容器 - Dictionary(Dictionary 的定义、Dictionary 元素的基本操作、Dict
    Dictionary概述Dictionary<TKey,TValue>存储的是键值对(Key-Value),通过键(Key)来存储或修改值(Value)Dictionary<TKey,TValue>存储的键值对是无序的Dictionary<TKey,TValue>存储的键是不可重复的Dictionary<TKey,TValue>支持泛型,可以指定存储的键值对的类型D......
  • Hive的基本操作(附详细步骤和相关操作截图)
    Hive3.1.2概述与基本操作1、Hive基本概念1.1 Hive简介Hive本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据存储,说白了hive可以理解为一个将SQL转换为MapReduce的任务的工具,甚至更近一步说hive就是一个MapReduce客户端。面试题:什么是hive?1、hive是数据仓库建......
  • 代码随想录算法训练营第十一天 | 150. 逆波兰表达式求值+ 239. 滑动窗口最大值+347.前
    今天接着补上周末的栈与队列的part2,下午继续完成今天的任务。150.逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算符为 '+'、'-'、'*' 和 '/' 。每个......
  • 力扣 第540题 有序数组中的单一元素
    解题思路:        因为解决方案必须满足`O(logn)`的时间复杂度,和`O(1)`的空间复杂度。所以我们首先考虑用二分查找的思想。这个问题的关键是找到我们要找的元素在左边还是右边的判断条件。        要找的元素在左边还是右边的判断条件是什么呢?题......
  • C小题目-输入10个数,要求输出其中值最大的元素和该数是第几个数
    #include<stdio.h>intmax(intx,inty){returnx>y?x:y;};intmain(){inta[10];inti,m,n;for(i=0;i<10;i++){printf("请输入第%d个数:",i);scanf("%d",&a[i]);};for(i=0,m=a[0],n=......
  • 【模板】如何实现链表元素的反转
    反转链表是链表操作中一个经典的问题,也是面试中常见的考题。本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作。我们将使用C++代码演示具体实现,同时分析时间复杂度和空间复杂度。问题定义给定一个单链表,我们需要将链表的节点顺序反转。例如,链表1......
  • Hive的基本操作用法
    一、Hive库操作1.创建数据库createdatabasebigdata32;标准写法:createdatabaseifnotexistsdatabases;(判断是否存在,无论存不存在都不会报错)2.创建数据库和位置createdatabasebigdata32_testlocation'/bigdata32ligang.db';3.修改数据库注意:数据库的其他元数据信......
  • C++STL容器适配器——stack和queue
    目录一.stack介绍及使用1.stack介绍2.stack的使用3.模拟实现stack二.queue的介绍及使用1.queue介绍2.queue的使用3.模拟实现queue三.deque的了解1.deque的介绍2.deque的缺陷四.priority_queue的介绍及使用1.priority_queue介绍2.priority_queue的使用3.模拟实......
  • 4-2-2.C# 数据容器 - HashSet 扩展(HashSet 集合操作、HashSet 存储对象的特性、HashSe
    HashSet概述HashSet<T>存储的元素是无序的HashSet<T>存储的元素是不可重复的HashSet<T>支持泛型,可以指定存储的元素的类型HashSet<T>不支持索引,不可以通过索引获取或修改元素HashSet<T>不是线程安全的,在多线程环境中需要谨慎使用一、HashSet集合操作1......
  • 4-2-2.C# 数据容器 - HashSet(HashSet 的定义、HashSet 元素的基本操作、HashSet 元素
    HashSet概述HashSet<T>存储的元素是无序的HashSet<T>存储的元素是不可重复的HashSet<T>支持泛型,可以指定存储的元素的类型HashSet<T>不支持索引,不可以通过索引获取或修改元素HashSet<T>不是线程安全的,在多线程环境中需要谨慎使用一、HashSet的定义定义......