C#数据结构:顺序栈
/// <summary>
/// 顺序栈
/// </summary>
/// <typeparam name="T"></typeparam>
public class SeqStack<T>
{
private T[] data;
private int top; ///*用来存放栈顶元素的下标,top 为-1 表示空栈*/
public SeqStack(int size)
{
data = new T[size];
top = -1;
}
public SeqStack() : this(10)//默认构造函数,最大容量10
{
}
//栈最大容量
public int MaxSize
{
get
{
return data.Length;
}
}
//判空
public bool IsEmpty()
{
return top == -1;
}
//判满
public bool IsFull()
{
return top == data.Length - 1;
}
//进栈
public void Push(T item)
{
if(IsFull())
{
Debug.LogError("栈满!");
return;
}
data[++top] = item;
}
//出栈
public T Pop()
{
if(IsEmpty())
{
Debug.LogError("栈空,无法出栈!");
return default(T);
}
return data[top--];
}
//访问栈顶
public T Peek()
{
if (IsEmpty())
{
Debug.LogError("栈空,无法访问栈顶!");
return default(T);
}
return data[top];
}
//栈中元素个数
public int Count
{
get
{
return top + 1;
}
}
//清空栈
public void Clear()
{
top = -1;
}
}/// <summary>