namespace List { /// <summary> /// 堆棧類 /// </summary>
public class CStack {
//調用鏈表類 private Clist m_List;
public CStack() {
//構造函數
m_List=new Clist();
}
/// <summary> /// 壓入堆棧 /// </summary>
public void Push(int PushValue) { //參數: int PushValue 壓入堆棧的數據
m_List.Append (PushValue);
}
/// <summary> /// 彈出堆棧數據,如果為空,則取得 2147483647 為 int 的最大值; /// </summary>
public int Pop() { //功能:彈出堆棧數據
int PopValue;
if (!IsNullStack()) {
//不為空堆棧
//移動到頂
MoveTop();
//取得彈出的數據 PopValue=GetCurrentValue();
//刪除
Delete(); return PopValue;
}
// 空的時候為 int 類型的最大值
return 2147483647; }
/// <summary> /// 判斷是否為空的堆棧 /// </summary>
public bool IsNullStack() {
if ( m_List.IsNull() ) return true ;
return false ; }
/// <summary> /// 堆棧的個數 /// </summary>
public int StackListCount {
get { return m_List.ListCount ; }
}
/// <summary> /// 移動到堆棧的底部 /// </summary>
public void MoveBottom() {
m_List.MoveFrist (); }
/// <summary> /// 移動到堆棧的Top /// </summary>
public void MoveTop() { m_List.MoveLast (); }
/// <summary> /// 向上移動 /// </summary>
public void MoveUp() { m_List.MoveNext(); }
/// <summary> /// 向上移動 /// </summary>
public void MoveDown() { m_List.MovePrevious() ; }
/// <summary> /// 取得當前的值 /// </summary>
public int GetCurrentValue() { return m_List.GetCurrentValue (); }
/// <summary> /// 刪除取得當前的結點 /// </summary>
public void Delete() { m_List.Delete (); }
/// <summary> /// 清空堆棧 /// </summary>
public void Clear()
{
m_List.Clear();
}
} }
使用先前的鏈表類,就可以輕松的完成堆棧類,除了基本的,Pop,Push 方法外,還提供,MoveBottom,MoveTop,MoveUp,MoveDown ,來訪問堆棧中的數據,使用GetCurrentValue方法,來取得數據的值,可以執行更多的操作,呵呵,就這麼簡單。To Be Continue.