Queue<T>队列与Stack<T>堆栈
一、概述:
Queue<T>队列,对象的先进先出集合(“FIFO”)。Stack<T>栈,对象的后进先出集合(”LIFO”)。
Queue<T>、Stack<T>类似于List<T>,但 Queue<T>没有IList<T>,所以不能用索引访问队列。也没有实现ICollection<T>,无Add,Remove等方法。
二、操作
入队列:Enqueue()
Queue<string> nums = new Queue<string>();
nums.Enqueue("one");
nums.Enqueue("two");
nums.Enqueue("three");
入栈:Push()
Stack<string> nums = new Stack<string>();
nums.Push("one");
nums.Push("two");
nums.Push("three");
遍历:队列最先返回最先进的,栈最先返回最后进的元素。
foreach (var num in nums)//队列依次返回,one,two,three ;栈依次返回:three,two,one,
{
Console.WriteLine(num);
}
出队列:Dequeue()返回最先进的元素。
Console.WriteLine(nums.Dequeue());//one
出栈:Pop()返回最后进的元素。
Console.WriteLine(nums.Pop());//three
返回开始处的元素:Peek()
Console.WriteLine(nums.Peek());//two
判断是否包含元素:Contains()
Console.WriteLine(nums.Contains("three"));
清空队列、栈:Clear()
nums.Clear();
队列、栈中元素个数:Count
Console.WriteLine(nums.Count);//0
复制到数组:CopyTo()、ToArray()
- CopyTo():把元素从队列复制到一个已有的数组中。
- ToArray():返回一个包含队列元素的新数组。
string[] arr=new string[3];
nums.CopyTo(arr,0); arr= nums.ToArray();
三、示意图


Queue<T>队列与Stack<T>堆栈的更多相关文章
- STL--容器适配器(queue、priority_queue、stack)
适配器(Adaptor)是提供接口映射的模板类.适配器基于其他类来实现新的功能,成员函数可以被添加.隐藏,也可合并以得到新的功能. STL提供了三个容器适配器:queue.priority_queue ...
- python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数
上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...
- STL --> queue单向队列
queue单向队列 queue 模板类的定义在<queue>头文件中.与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器 ...
- python queue - 同步队列类
参考 官网 queue 模块 queue 模块实现多生产者,多消费者队列. 当必须在 ==多个线程之间安全地交换信息== 时,它在线程编程中特别有用. 此模块中的Queue类实现了所有必需的锁定语义. ...
- Queue 先进先出队列的操作
1.Queue定义 System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除. 2.优点 1.能对集合进行顺序处理(先进先 ...
- C++数据结构之Queue(队列)
Queue,队列,和我们日常生活中的队列是同样的规则,"先进先出",从尾入,从首出. Queue,主要有三种基本操作,append(添加元素至队尾):serve(队首元素出列):r ...
- 【LeetCode】232 & 225 - Implement Queue using Stacks & Implement Stack using Queues
232 - Implement Queue using Stacks Implement the following operations of a queue using stacks. push( ...
- pyhton中的Queue(队列)
什么是队列? 队列就像是水管子,先进先出,与之相对应的是栈,后进先出. 队列是线程安全的,队列自身有机制可以实现:在同一时刻只有一个线程在对队列进行操作. 存数据,取数据 import Queue q ...
- STL - queue(队列)
Queue简介 queue是队列容器,是一种"先进先出"的容器. queue是简单地装饰deque容器而成为另外的一种容器. #include <queue> queu ...
随机推荐
- memcached 学习笔记 4
memcached真实项目中的应用 1 缓存式的Web应用程序架构 有了缓存的支持,我们可以在传统的app层和db层之间加入cache层,每个app服务器都可以绑定一个mc, 每次数据的读取都可以从m ...
- try catch finall 结构里的 return
public class ExceptionDemo1 { public static void main(String[] args) { try { ; /b; System.out.printl ...
- sgu-203 Hyperhuffman(哈夫曼编码)
Hyperhuffman You might have heard about Huffman encoding - that is the coding system that minimizes ...
- R语言数据重塑cbind+rbind+merge+ melt+cast
R语言中的数据重塑是关于变化的数据分为行和列的方式.大多数R地数据处理的时候是通过将输入的数据作为一个数据帧进行.这是很容易提取一个数据帧的行和列数据,但在某些情况,当我们需要的数据帧的格式是不同的来 ...
- [PY3]——IO——文件读写
文件打开和关闭 # 使用open 打开文件,返回时值是一个 File-like对象 f.open('/test/file') # 使用read读取文件 f.read( ) # 使用close关闭文件 ...
- 整理一些前端开发比较好的node包
1.一个base64转换的包 !https://www.npmjs.com/package/js-base64 2 js 压缩 !https://www.npmjs.com/package/uglif ...
- linux运维人员成长
原文地址:https://blog.csdn.net/kwame211/article/details/78059331 初级篇 linux运维人员常用工具拓扑详见: 1rsync工具 很多地方经常会 ...
- linux运维工程师成长过程
原文地址:https://blog.csdn.net/kwame211/article/details/78059331 初级篇 linux运维人员常用工具拓扑详见: 1rsync工具 很多地方经常会 ...
- 述一个程序员的技能:系统安装(win7版)idea配置
idea配置:http://www.phperz.com/article/15/0923/159043.html 作为一名计算机专业出身的程序员,组装电脑和安装系统是基本技能.打造一个安全稳定高效的开 ...
- react父子组件各自生命周期函数加载的先后顺序
理解记忆总结: 父组件即将挂载(最外层的父组件都还没准备进入,其内部的子组件当然更没进入了) -> 子组件即将挂载 -> 子组件挂载完成(父内部都没完成,父当然不能算完成) -> ...