c#队列取值_C# 队列

本文介绍了如何使用C#实现循环顺序队列和链队列,并且应用于银行叫号系统。包括队列的入队、出队、获取队头元素、判断队列是否为空或已满等操作。此外,还实现了银行叫号链队列和顺序队列,提供获取服务号码的功能。
摘要由CSDN通过智能技术生成

1 Queue2

3 usingSystem;4 usingSystem.Collections.Generic;5 usingSystem.Linq;6 usingSystem.Text;7 usingSystem.Threading;8

9 namespaceDataStructure10 {11 ///

12 ///队列接口13 ///

14 interface IQueue

15 {16 void EnQueue(T elem); //入队列操作

17 T DeQueue(); //出队列操作

18 T GetFront(); //取对头元素

19 int GetLength(); //求队列的长度

20 bool IsEmpty(); //判断队列是否为空

21 void Clear(); //清空队列

22 bool IsFull(); //判断队列是否为满

23 }24

25 ///

26 ///银行队列接口27 ///

28 interface IBankQueue : IQueue

29 {30 int GetCallnumber(); //获取服务号码

31 }32

33

34 ///

35 ///循环顺序队列36 ///

37 ///

38 class CSeqQueue : IQueue

39 {40 private int maxsize; //循环顺序队列的容量

41 private T[] data; //数组,用于存储循环顺序队列中的数据元素

42 private int front; //指示最近一个已经离开队列的元素所占有的位置 循环顺序队列的对头

43 private int rear; //指示最近一个进入队列的元素的位置 循环顺序队列的队尾

44

45 public T this[intindex]46 {47 get { returndata[index]; }48 set { data[index] =value; }49 }50

51 //容量属性

52 public intMaxsize53 {54 get { returnmaxsize; }55 set { maxsize =value; }56 }57

58 //对头指示器属性

59 public intFront60 {61 get { returnfront; }62 set { front =value; }63 }64

65 //队尾指示器属性

66 public intRear67 {68 get { returnrear; }69 set { rear =value; }70 }71

72 publicCSeqQueue()73 {74

75 }76

77 public CSeqQueue(intsize)78 {79 data = newT[size];80 maxsize =size;81 front = rear = -1;82 }83

84 //判断循环顺序队列是否为满

85 public boolIsFull()86 {87 if ((front == -1 &&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值