博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
队列的顺序存储
阅读量:6678 次
发布时间:2019-06-25

本文共 2178 字,大约阅读时间需要 7 分钟。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

interface IQueue
{ int GetLength(); void Clear(); void EnQueue(T elem); void Dequeue(); T Peek(); bool IsEmepty(); }
class Queue
: IQueue
{ private T[] data; private int count;//元素个数 private int maxSize; //数组最大容量 private int front;//对头下标 private int rear;// 队尾下标

在这里插入代码片

public Queue(int maxSize)        {            this.maxSize = maxSize;            data=new T[maxSize]; //开内存分配空间            front = rear = 0;             count =0;        }                public void Clear()        {            front = rear = 0;            data = null;        }

在这里插入代码片

//出队        public void Dequeue()        {            //判断队是否为空            //移除数据            //frorn++            //count            if (rear==front)            {                throw new Exception("队为空无法删除");            }            front=(front+1)%maxSize;            count--;        }

在这里插入代码片

//入队        public void EnQueue(T elem)        {            //判断是否已满            //加入数据            //rear后移            //count++            if ((rear + 1) % maxSize == front)            {                throw new Exception("队满无法存储数据");            }            data[rear] = elem;            rear = (rear + 1) % maxSize;            count++;        }

在这里插入代码片

public int GetLength()        {            return (rear - front + maxSize) % maxSize;        }

在这里插入代码片

public bool IsEmepty()        {            return front == rear;        }

在这里插入代码片

public T Peek()        {            if (rear == front)            {                throw new Exception("队为空无法获取数据");            }            return data[front];        }    }
class Program    {        static void Main(string[] args)        {            Queue
sum=new Queue
(4); Console.WriteLine(sum.IsEmepty()); Console.WriteLine(sum.GetLength()); sum.EnQueue(100); sum.EnQueue(200); sum.EnQueue(300); sum.EnQueue(400); Console.WriteLine(sum.IsEmepty()); sum.Dequeue(); Console.WriteLine(sum.GetLength()); Console.WriteLine(sum.Peek()); Console.ReadKey(); } }

转载地址:http://adrxo.baihongyu.com/

你可能感兴趣的文章
Windows借助脚本实现自动化加域
查看>>
构造函数私有化
查看>>
我的友情链接
查看>>
Linux Shell编程
查看>>
归档与反归档
查看>>
Learning Data Structure_5_图(2)
查看>>
HDS G1000和Gx00的端口属性
查看>>
Innodb中mysql如何快速删除2T的大表
查看>>
bash基本命令的使用(笔记)
查看>>
windows_learn 002 用户管理和组策略
查看>>
kafka性能优化
查看>>
含有echart 图表的报表打印
查看>>
域控迁移为08 R2后无法访问Linux服务器共享
查看>>
我的友情链接
查看>>
华为认证考试
查看>>
我的友情链接
查看>>
nosql之redis简单安装与使用
查看>>
基于LVS的NAT模式实现PHP应用
查看>>
在物质与精神之间实现平衡
查看>>
vim 文本编辑器
查看>>