栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO表)。
1、进栈(PUSH)算法
1、若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);
2、置TOP=TOP+1(栈指针加1,指向进栈地址);
3、S(TOP)=X,结束(X为新进栈的元素);
2、退栈(POP)算法
1、若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);
2、X=S(SOP),(退栈后的元素赋给X);
3、TOP=TOP-1,结束(栈指针减1,指向栈顶)。
下面看一下栈的实现接口:
public interface IStack<T>
{
int Length();
bool IsEmpty();
void Clear();
void Push(T items);
T Pop();
T GetPopValue();
}
{
int Length();
bool IsEmpty();
void Clear();
void Push(T items);
T Pop();
T GetPopValue();
}
下面的代码是栈的实现的类:
}
}
下面进行测试:
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
当你需要把对象的顺序反过来的时候,你就可以按顺序把对象放栈里,然里再从栈里取出来,这时功能就实现了。