1.棧是操作限定在表的尾端進行的線性表,表尾要進行插入,刪除等操作。我們把表尾稱為棧頂,另一端叫做棧底。棧的操作是按照後進先出(LIFO:Last
In First Out)或是先進後出(FILO)的原則進行的,所以也叫做LIFO表或FILO表。
2.我們將棧的幾個常用操作用接口表示如下:
public interface IStack<T>
{
int GetLength();
bool IsEmpty();
void Clear();
void Push(T item);//入棧
T Pop();//出棧
T GetTop()
}
3.使用連續空間來存儲棧中的元素我們稱為順序棧,我們就實現一個簡單的順序棧,代碼如下:
public class SeqStack<T>:IStack<T>
{
private int maxsize;
private T[] data;
private int top;
public T this[int index]
{
get { return data[index];}
set { data[index] = value; }
}
public int Maxsize
{
get { return maxsize; }
set { maxsize = value; }
}
public int Top
{
get { return top; }
set { top = value; }
}
public SeqStack(int size)
{
data = new T[size];
maxsize = size;
top = -1;
}
public int GetLength()
{
return top + 1;
}
public void Clear()
{
top = -1;
}
public bool IsEmpty()
{