using System;
namespace List
{
/// 堆栈类
public class CStack
{
//调用链表类
private Clist m_List;
public CStack()
{
//构造函数
m_List=new Clist();
}
/// 压入堆栈
public void Push(int PushValue)
{
//参数: int 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 ();
}
/// 移动到堆栈的Top
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();
}
}
}
使用先前的链表类,就可以轻松的完成堆栈类,除了基本的,Pop,Push 方法外,还提供,MoveBottom,MoveTop,MoveUp,MoveDown ,来访问堆栈中的数据,使用GetCurrentValue方法,来取得数据的值,可以执行更多的操作,呵呵,就这么简单。To Be Continue.