12.常用泛型数据结构类-泛型栈和队列
12.1 知识点
回顾数据容器
变量
- 无符号:
byte
,ushort
,uint
,ulong
- 有符号:
sbyte
,short
,int
,long
- 浮点数:
float
,double
,decimal
- 特殊:
char
,bool
,string
复杂数据容器
- 枚举:
enum
- 结构体:
struct
- 数组(一维、二维、交错):
[]
,[,]
,[][]
- 类
数据集合
需要引用命名空间 using System.Collections;
ArrayList
:object
数据列表Stack
:栈,先进后出Queue
:队列,先进先出Hashtable
:哈希表,键值对
泛型数据集合
需要引用命名空间 using System.Collections.Generic;
List
:列表,泛型列表Dictionary
:字典,泛型哈希表LinkedList
:双向链表Stack
:泛型栈Queue
:泛型队列
泛型栈和队列
命名空间:using System.Collections.Generic;
使用上和之前的Stack
和Queue
一模一样。
Stack<int> stack = new Stack<int>();
Queue<object> queue = new Queue<object>();
方法不再赘述,和非泛型基本一致。
12.2 知识点代码
using System;
using System.Collections.Generic;
namespace Lesson11_泛型栈和队列
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("泛型栈和队列");
#region 知识点一 回顾数据容器
#region 变量
//无符号
//byte ushort uint ulong
//有符号
//sbyte short int long
//浮点数
//float double decimal
//特殊
//char bool string
#endregion
#region 复杂数据容器
//枚举 enum
//结构体 struct
//数组(一维、二维、交错) [] [,] [][]
//类
#endregion
#region 数据集合
//using System.Collections;
//ArrayList object数据列表
//Stack 栈 先进后出
//Queue 队列 先进先出
//Hashtable 哈希表 键值对
#endregion
#region 泛型数据集合
//using System.Collections.Generic;
//List 列表 泛型列表
//Dictionary 字典 泛型哈希表
//LinkedList 双向链表
//Statck 泛型栈
//Queue 泛型队列
#endregion
#endregion
#region 知识点二 泛型栈和队列
//命名空间:using System.Collections.Generic;
//使用上 和之前的Stack和Queue一模一样
Stack<int> stack = new Stack<int>();
Queue<object> queue = new Queue<object>();
//方法不在赘述 和非泛型基本一致
#endregion
}
}
}
12.3 练习题
总结:数组、List、Dictionary、Stack、Queue、LinkedList这些存储容器对于我们来说应该如何选择他们来使用
普通线性表:数组,List,LinkedList
- 数组:固定的不变的一组数据
- List: 经常改变,经常通过下标查找
- LinkedList:不确定长度的,经常临时插入改变,查找不多
先进后出:Stack
- 对于一些可以利用先进后出存储特点的逻辑
- 比如:UI面板显隐规则
先进先出:Queue
- 对于一些可以利用先进先出存储特点的逻辑
- 比如:消息队列,有了就往里放,然后慢慢依次处理
键值对:Dictionary
- 需要频繁查找的,有对应关系的数据
- 比如一些数据存储 id对应数据内容
- 道具ID ——> 道具信息
- 等等
12.4 练习题代码
using System;
namespace Lesson11_练习题
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("泛型栈和队列 练习题");
#region 练习题一
//自己总结一下
//数组、List、Dictionary、Stack、Queue、LinkedList
//这些存储容器,对于我们来说应该如何选择他们来使用
#region 答案
//普通线性表:
//数组,List,LinkedList
//数组:固定的不变的一组数据
//List: 经常改变,经常通过下标查找
//LinkedList:不确定长度的,经常临时插入改变,查找不多
//先进后出:
//Stack
//对于一些可以利用先进后出存储特点的逻辑
//比如:UI面板显隐规则
//先进先出:
//Queue
//对于一些可以利用先进先出存储特点的逻辑
//比如:消息队列,有了就往里放,然后慢慢依次处理
//键值对:
//Dictionary
//需要频繁查找的,有对应关系的数据
//比如一些数据存储 id对应数据内容
//道具ID ——> 道具信息
//怪物ID ——> 怪物对象
//等等
#endregion
#endregion
}
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com