📄 dequeasarray.cs
字号:
namespace Opus6
{
using System;
using System.Collections;
[Version("$Id: DequeAsArray.cs,v 1.4 2001/10/28 19:50:09 brpreiss Exp $"), Copyright("Copyright (c) 2001 by Bruno R. Preiss, P.Eng.")]
public class DequeAsArray : QueueAsArray, Deque, Container, IComparable, IEnumerable
{
public DequeAsArray(int size) : base(size)
{
}
public object DequeueHead()
{
return base.Dequeue();
}
public object DequeueTail()
{
if (base.count == 0)
{
throw new ContainerEmptyException();
}
object obj1 = base.array[base.tail];
base.array[base.tail] = null;
if (base.tail-- == 0)
{
base.tail = base.array.Length - 1;
}
base.count--;
return obj1;
}
public void EnqueueHead(object obj)
{
if (base.count == base.array.Length)
{
throw new ContainerFullException();
}
if (base.head-- == 0)
{
base.head = base.array.Length - 1;
}
base.array[base.head] = obj;
base.count++;
}
public void EnqueueTail(object obj)
{
base.Enqueue(obj);
}
public static void Main()
{
Opus6.Console.WriteLine("DequeAsArray Test");
Deque deque1 = new DequeAsArray(5);
QueueAsArray.TestQueue((Opus6.Queue) deque1);
DequeAsArray.TestDeque(deque1);
}
internal static void TestDeque(Deque deque)
{
for (int num1 = 0; num1 < 6; num1++)
{
if (deque.IsFull)
{
break;
}
deque.EnqueueHead(new Association(num1++, num1++));
if (deque.IsFull)
{
break;
}
deque.EnqueueTail(new Association(num1++, num1++));
}
Opus6.Console.WriteLine(deque);
while (!deque.IsEmpty)
{
object obj1 = deque.DequeueHead();
Opus6.Console.WriteLine(obj1);
if (deque.IsEmpty)
{
return;
}
obj1 = deque.DequeueTail();
Opus6.Console.WriteLine(obj1);
}
}
public object Tail
{
get
{
if (base.count == 0)
{
throw new ContainerEmptyException();
}
return base.array[base.tail];
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -