C#泛型集合之——队列与堆栈

队列与堆栈基础

队列 

1.操作:

(1)创建及初始化:

Queue<类型> 队列名 =new Queue<类型>();//空队列,无元素

Queue<类型> 队列名 =new Queue<类型>(数组名);

Queue<类型> 队列名 =new Queue<类型>(){值} //队列未包含Add定义。这样是不行的!!!

(2)出入队:

入队:队列名.Enqueue(值);

出队:队列名.Dequeue(); //返回是队列类型的首元素值,也可直接出队,不获取值

(1)    不出队,但获取队首值:

类型 变量名 = 队列名.First();  //返回队首元素。如果无法判断第一个元素是否为空,可以用 FirstOrDefault来替换First 若为空,则null

(4)获取队列长度:队列名.Count();    //括号可加可不加

(5)判断某元素是否在队列中:队列名.Contains(元素);  //返回为boll型

(6)队列可以接受foreach循环

(7)将队列拷贝到数组中:类型 []数组名 =队列名.ToArray();

(8)清空队列:队列名.Clear();

堆栈

1.操作:堆栈与队列的相关操作大体相同,这里仅给出不同的进栈和弹栈。

(1)进栈:栈名.Push(元素值);

(2)弹栈:栈名.Pop(); //接收值也可不接收

(3)获取栈顶元素而不弹:类型 变量名= 栈名.Peek();

原文地址:https://www.cnblogs.com/fangexuxiehuihuang/p/11625118.html

时间: 2024-10-08 10:08:08

C#泛型集合之——队列与堆栈的相关文章

普通集合和泛型集合的区别,哈希表和字典表的区别,队列和堆栈的区别以及堆和栈的区别。

普通集合和泛型集合的区别: 泛型集合与传统集合相比 类型更安全. 泛型集合无需装箱拆箱操作. 泛型的重要性. 泛型是未来五年的主流技术 ... 通常情况下,建议您使用泛型集合,因为这样可以获得类型安全的直接优点而不需要从基集合类型派生并实现类型特定的成员.此外,如果集合元素为值类型,泛型集合类型的性能通常优于对应的非泛型集合类型(并优于从非泛型基集合类型派生的类型),因为使用泛型时不必对元素进行装箱. 下面的泛型类型对应于现有的集合类型: List 是对应于 ArrayList 的泛型类. Di

js里实现队列与堆栈

在面向对象的程序设计里,一般都提供了实现队列(queue)和堆栈(stack)的方法,而对于JS来说,我们可以实现数组的相关操作,来实现队列和堆栈的功能,看下面的相关介绍. 一 看一下它们的性质,这种性质决定了它们的使用场合 队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出! 堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出! 二 看一下实现的代码(JS代码) var a=new Array(); a.unshift(1); a.unshift(2);

编写高质量代码改善C#程序的157个建议——建议20:使用泛型集合代替非泛型集合

建议20:使用泛型集合代替非泛型集合 在建议1中我们知道,如果要让代码高效运行,应该尽量避免装箱和拆箱,以及尽量减少转型.很遗憾,在微软提供给我们的第一代集合类型中没有做到这一点,下面我们看ArrayList这个类的使用情况: ArrayList al=new ArrayList(); al.Add(0); al.Add(1); al.Add("mike"); foreach (var item in al) { Console.WriteLine(item); } 上面这段代码充分演

队列和堆栈的区别

如题,队列和堆栈的区别 首先这个问题是非常具有歧义的.堆栈其实是堆和栈,都是内存的不同区域. 那么这里的堆栈,应该不是指内存,而是java.util.Stack<E>(类).应该称之为栈.之所以叫堆栈,应该是某些人的理解问题. 这里的队列,应该是java.util.Queue(接口) 就是说,java集合中的两种数据结构的对比. 一句话形容其区别,就是: 队列是FIFO的(先进先出): 堆栈式FILO的(现今后出): 以上. 队列和堆栈的区别,布布扣,bubuko.com

C# 泛型集合

比较泛型集合和非泛型集合在运行中的效率: using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ListDemo { class Program { static void Main(string[

ConvertHelper与泛型集合

在机房重构时,我们经常会用到ConvertHelper.它把从数据库中查询到的dateTable(也是一个临时表)转化为泛型,然后再填充到DataGridView控件中.ConvertHelper类有两点体现了面向对象的思想.一是因为它是经常被使用而被封装起来的类:二是因为它的返回值是泛型集合,泛型集合使存储数据时灵活而安全,也体现了面向对象的思想. ConvertHelper与sqlHelper 一开始接触ConvertHelper,以为它和sqlHelper一样,后来发现它们因为作用不同引用

JavaScript实现数据结构中的队列和堆栈

今天在项目中要使用JavaScript实现数据结构中的队列和堆栈,这里做一下总结. 一.队列和堆栈的简单介绍 1.1.队列的基本概念 队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出! 如下图所示: 1.2.堆栈的基本概念 堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出! 如下图所示: 二. 在JavaScript中实现队列和堆栈 在JavaScript中实现队列和数组主要是通过数组,js数组中提供了以下几个方法可以让我们很方便实现队列和堆栈: sh

集合与泛型集合

集合:理解为箱子,没有固定长度,可以放任意类型的数据或是变量:集合也有索引: ArrayList:定义: ArrayList arr = new ArrayList();添加元素: arr.Add(a); arr.Add(b); 取值: arr[索引]: 注意的是,取值时是object类型,需要进行类型转换: 注意:一个集合虽然可以放任意类型,但是我们使用时一般一个集合就放一种类型: 特殊功能:arr.Add(); 添加元素arr.Insert(索引,值); 插队,将值插队进到索引的位置arr.

C#5.0泛型集合类型简述

.NET中的泛型集合 在这里主要介绍常见的泛型集合,很多时候其并发时的线程安全性常常令我们担忧.因而简述下.NET并发时线程安全特性,其详情请见MSDN. 普通集合都不支持多重并发写操作 部分支持单线程写和并发读操作 同时.NET4添加了大量并发集合 首先介绍常见的泛型集合接口,其大部分都位于System.Collection.Generic命名空间. IEnumerable<T>,其可以获取一个IEnumerator<T>迭代器,如果从数据库的角度来看,前者是表,后者是游标,同时