C#数据结构与队列怎么实现
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要讲解了"C#数据结构与队列怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C#数据结构与队列怎么实现"吧!C#数据结构与算法之队列是
千家信息网最后更新 2024年09月22日C#数据结构与队列怎么实现
这篇文章主要讲解了"C#数据结构与队列怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C#数据结构与队列怎么实现"吧!
C#数据结构与算法之队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(back)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。这也就是我们平常经常用说到的先进先出法则(FIFO),队列这种法则,在中国好久以前就开始运用了,例如粮仓管理官员,在没掌握这种法则前,仓库底部的粮食都因时间太久而坏掉了,后来有聪明人士在粮仓二边开个门,一边进仓一边出仓,这样管理就方便多了。队列中没有元素时,称为空队列。
C#数据结构与算法之队列实现的接口如下:
public interface IQueen﹤T﹥ { int Length(); bool IsEmpty(); bool IsFull(); void Clear(); void IN(T items); T Out(); T GetFrontItem(); }
C#数据结构与算法之队列实现的原理与代码如下:
public class JQueen﹤T﹥ : IQueen﹤T﹥ { private int size; private T[] item; private int front; private int back; public JQueen() : this(100) { size = 100; item = new T[100]; front = back = -1; } public JQueen(int length) { size = length; item = new T[length]; front = back = -1; } public T this[int index] { get { return item[index]; } set { item[index] = value; } } public int Front { get { return front; } set { front = value; } } public int Back { get { return back; } set { back = value; } } public int MaxLength { get { return size; } set { size = value; } } public int Length() { return (back - front + size) % size; } public bool IsEmpty() { return (front == back); } public bool IsFull() { return ((back + 1) % size == front); } public void Clear() { front = back = -1; } public void IN(T items) { if (IsFull()) { throw new ArgumentOutOfRangeException("RangeException", "Queen RangeException: queen is full"); } item[++back] = items; } public T Out() { T tmp = default(T); if (IsEmpty()) { throw new ArgumentOutOfRangeException("RangeException", "Queen RangeException: queen is empty"); } tmp = item[++front]; return tmp; } public T GetFrontItem() { if (IsEmpty()) { throw new ArgumentOutOfRangeException("RangeException", "Queen RangeException: queen is empty"); } return item[front + 1]; } }
C#数据结构与算法之队列的测试队列代码:
public class Program { static void Main(string[] args) { try { JQueen﹤string﹥ JQ = new JQueen﹤string﹥(); Console.WriteLine(JQ.IsEmpty()); //是否为空 Console.WriteLine(JQ.IsFull()); //是否满队 Console.WriteLine(JQ.MaxLength); //初始化时队列的长度 Console.WriteLine(JQ.Length()); //队列元素长度 Console.WriteLine(JQ.Front); //队头位置 Console.WriteLine(JQ.Back); //队尾位置 JQ.IN("A"); //插入元素 JQ.IN("B"); JQ.IN("C"); JQ.IN("D"); Console.WriteLine(JQ.GetFrontItem()); //队头元素 Console.WriteLine("------元素出队后队头元素-------"); JQ.Out(); //出A JQ.Out(); Console.WriteLine(JQ.GetFrontItem()); //出队二个元素后队头元素 Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); //异常 Console.ReadLine(); } } }
C#数据结构与算法之队列程序运行结果如下:
感谢各位的阅读,以上就是"C#数据结构与队列怎么实现"的内容了,经过本文的学习后,相信大家对C#数据结构与队列怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
队列
数据
数据结构
结构
C#
元素
算法
法则
学习
代码
位置
内容
粮仓
长度
管理
平常
特殊
聪明
也就是
人士
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网管网络安全
数据库表简介
剑灵电信哪个服务器人多
中国互联网第一股网盛科技
从事网络安全最大年龄
大数据技术有没有软件开发
语音服务器连接失败金铲铲
数据库事务属性是
qt5软件开发总结
网络安全的可见性
游戏软件开发科技
郑州软件开发联系方式
软件开发绘图用什么工具
移动数据库文件位置
黑板报网络安全素材
学校服务器怎么维修
华为网络技术大赛决赛集训
香港服务器供应商
oracle数据库破解版
软件开发绩效薪酬体系
公积金网上提取失败 服务器异常
有口碑的网络技术专业服务
y与结构设计相关的软件开发单位
服务器维护好了不能上网
天书奇谈服务器忘了怎么解决
电脑设置不使用代理服务器
普陀区企业数据库研发收费标准
蚌埠网络安全系统
服务器出现故障需要多久才能修好
小米解锁提示清空数据库