pascalabcnet/TreeConverter/Collections/stack.cs
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

63 lines
1.4 KiB
C#

using System;
using System.Linq;
namespace PascalABCCompiler.Collections
{
[Serializable]
public class stack<T>
{
protected System.Collections.Generic.Stack<T> internal_stack = new System.Collections.Generic.Stack<T>();
public void push(T element)
{
internal_stack.Push(element);
}
public T pop()
{
return internal_stack.Pop();
}
public T top()
{
if (internal_stack.Count == 0)
return default(T);
//T t = internal_stack.Pop();
//internal_stack.Push(t);
return internal_stack.Peek();
}
public T first()
{
if (internal_stack.Count == 0)
return default(T);
return internal_stack.ToArray()[internal_stack.Count-1];
}
public int size
{
get
{
return internal_stack.Count;
}
}
public bool Empty
{
get
{
return internal_stack.Count == 0;
}
}
public void clear()
{
internal_stack.Clear();
}
public System.Collections.Generic.Stack<T> CloneInternalStack()
{
return new System.Collections.Generic.Stack<T>(internal_stack.Reverse());
}
}
}