public class MyQueue<T> : IDisposable
{
private T[] queue;
private int length;
private int capacity;
private int head = 0;
private int tail = 0;
public MyQueue(int capacity) {
this.capacity = capacity;
this.head = 0;
this.tail = 0;
this.length = 0;
this.queue = new T[capacity];
}
public void Clear() {
head = 0;
tail = 0;
length = 0;
}
public bool IsEmpty() {
return length == 0;
}
public bool IsFull() {
return length == capacity;
}
public int Length() {
return length;
}
public bool EnQueue(T node) {
if (!IsFull()) {
queue[tail] = node;
tail = (++tail) % capacity;
length++;
return true;
}
return false;
}
public T DeQueue() {
T node = default(T);
if (!IsEmpty()) {
node = queue[head];
head = (++head) % capacity;
length--;
}
return node;
}
public void Traverse() {
for (int i = head; i < length + head; i++) {
Console.WriteLine(queue[i % capacity]);
Console.WriteLine($"前面还有{i - head}个");
}
}
public void Dispose() {
queue = null;
}
}
class Program
{
static void Main(string[] args) {
MyQueue<int> queue = new MyQueue<int>(4);
queue.EnQueue(10);
queue.EnQueue(16);
queue.EnQueue(18);
queue.EnQueue(12);
queue.Traverse();
Console.Read();
}
}
class Program
{
static void Main(string[] args) {
MyQueue<int> queue = new MyQueue<int>(4);
queue.EnQueue(10);
queue.EnQueue(16);
queue.EnQueue(18);
queue.EnQueue(12);
queue.Traverse();
Console.WriteLine("弹两个出去");
queue.DeQueue();
queue.DeQueue();
Console.WriteLine();
queue.Traverse();
Console.Read();
}
}
public class Customer
{
public string Name { get; set; }
public int Age { get; set; }
public void PringInfo() {
Console.WriteLine("姓名:" + Name);
Console.WriteLine("年龄:" + Age);
Console.WriteLine();
}
}
class Program
{
static void Main(string[] args) {
MyQueue<Customer> queue = new MyQueue<Customer>(5);
queue.EnQueue(new Customer() { Name = "宋小二", Age = 29 });
queue.EnQueue(new Customer() { Name = "陈小三", Age = 28 });
queue.EnQueue(new Customer() { Name = "王小四", Age = 26 });
queue.EnQueue(new Customer() { Name = "朱小五", Age = 48 });
for (int i = 0; i < queue.Length(); i++) {
queue[i].PringInfo();
}
Console.Read();
}
}
public T this[int index] {
get {
return queue[index];
}
}
public IEnumerator<T> GetEnumerator() {
foreach(T node in queue) {
if(node != null) {
yield return node;
}
}
}
IEnumerator IEnumerable.GetEnumerator() {
return GetEnumerator();
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有