📄 stackaslinkedlist.cs
字号:
namespace Opus6
{
using System;
using System.Collections;
[Version("$Id: StackAsLinkedList.cs,v 1.5 2001/10/28 19:50:09 brpreiss Exp $"), Copyright("Copyright (c) 2001 by Bruno R. Preiss, P.Eng.")]
public class StackAsLinkedList : AbstractContainer, Opus6.Stack, Container, IComparable, IEnumerable
{
public StackAsLinkedList()
{
this.list = new LinkedList();
}
public override void Accept(Visitor visitor)
{
for (LinkedList.Element element1 = this.list.Head; element1 != null; element1 = element1.Next)
{
visitor.Visit(element1.Datum);
if (visitor.IsDone)
{
return;
}
}
}
public override int CompareTo(object obj)
{
throw new MethodNotImplementedException();
}
public override IEnumerator GetEnumerator()
{
return new Opus6.StackAsLinkedList.Enumerator(this);
}
public static void Main()
{
Opus6.Console.WriteLine("StackAsLinkedList Test");
Opus6.Stack stack1 = new StackAsLinkedList();
StackAsArray.TestStack(stack1);
}
public object Pop()
{
if (base.count == 0)
{
throw new ContainerEmptyException();
}
object obj1 = this.list.First;
this.list.Extract(obj1);
base.count--;
return obj1;
}
public override void Purge()
{
this.list.Purge();
base.count = 0;
}
public void Push(object obj)
{
this.list.Prepend(obj);
base.count++;
}
public object Top
{
get
{
if (base.count == 0)
{
throw new ContainerEmptyException();
}
return this.list.First;
}
}
protected LinkedList list;
private class Enumerator : IEnumerator
{
internal Enumerator(StackAsLinkedList stack)
{
this.position = null;
this.stack = stack;
}
public bool MoveNext()
{
if (this.position == null)
{
this.position = this.stack.list.Head;
}
else
{
this.position = this.position.Next;
}
return (this.position != null);
}
public void Reset()
{
this.position = null;
}
public object Current
{
get
{
if (this.position == null)
{
throw new InvalidOperationException();
}
return this.position.Datum;
}
}
protected LinkedList.Element position;
private StackAsLinkedList stack;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -