栈是一种重要的数据结构。从数据结构的角度看,栈也是线性表,其特殊性在于栈的基本操作是线性表操作的子集,它们是操作受限的线性表,因此可以称为限定性的数据结构。
栈是限定仅在表尾进行插入或删除操作的线性表。因此对栈来说,表尾端有其特殊含义,称为“栈顶”,相应地,表头端称为“栈底”,不含元素的空表称为空栈。栈的修改是按照后进先出的原则进行的。因此栈又称为后进先出的线性表,在实现栈的数据结构时一定要注意这个特点。栈的基表操作除了在栈顶进行插入或删除外,还有栈的初始化、判断是否为空以及取栈顶元素等。具体代码如下:
Public class CStack
{
//调用链表类
Private Clist m_List;
Public Cstack()
{
//构造函数
m_List=new Clist();
}
//压入堆栈
Public void Push(int PushValue)
{
//参数PushValue是压入堆栈的数据
m_List.Append(PushValue);
}
//弹出堆栈数据,如果为空,则取得2147483647为int最大值;
Public int Pop()
{
//功能:弹出堆栈数据
Int PopValue;
If(!IsNullStack())
{
//不为空堆栈
//移动到顶部
MoveTop();
//取得弹出的数据
PopValue=GetCurrentValue();
//删除
Delete();
Return PopValue;
}
//空的时候为int类型的最大值
Return 2147483647
}
Public bool IsNullStack()
{
If(m_List.IsNull())
Return true;
Return false;
}
Public int StackListCount
{
Get
{
Return m_List.ListCount;
}
}
Public void MoveBottom()
{
m_List.MoveFrist();
}
Public void MoveTop()
{
m_List.MoveLast();
}
Public void MoveUp()
{
M_List.MoveNext();
}
Public void MoveDown()
{
m_List.MovePrevious();
}
Public int GetCurrentValue()
{
Return m_List.GetCurrentValue();
}
Public void Delete()
{
m_List.Delete();
}
Public void Clear()
{
m_List.Clear();
}
}
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交