C# 堆栈的数据结构 (二)

堆栈是一种常用的数据结构,并且是线性表操作的子集,即操作受限的线性表。因此需要用到Clist 线性表类

 1   public class CStack

 2     {

 3         private Clist m_List;//创建链表对象实例

 4         //构造函数

 5         public CStack()

 6         {

 7             m_List=new Clist();

 8         }

 9         //压入堆栈

10         public void Push(int PushValue)

11         {

12             m_List.Append(PushValue);//参数:int PushValue 压入堆栈的数据

13         }

14         //弹出堆栈数据,如果为空,则取2147483647为int的最大值

15         public int Pop()

16         {

17             // 功能:弹出堆栈数据

18             int PopValue;

19             if (!IsNullStack())

20             {

21                 //不为空堆栈

22                 //移动到顶

23                 MoveTop();

24                 //取得弹出的数据

25                 PopValue = GetCurrentValue();

26                 //删除

27                 Delete();

28                 return PopValue;

29             }

30             //空的时候为int 类型的最大值

31             return 2147483647;

32         }

33         //判断是否为空的堆栈

34         public bool IsNullStack()

35         {

36             if (m_List.IsNull())

37             {

38                 return true;

39             }

40             return false;

41         }

42         //堆栈的个数

43         public int StackListCount

44         {

45             get { return m_List.ListCount; }

46         }

47         //移动到堆栈的底部

48         public void MoveBottom()

49         {

50             m_List.MoveFrist();

51         }

52         //移动到堆栈的顶部

53         public void MoveTop()

54         {

55             m_List.MoveLast();

56         }

57         //向上移动

58         public void MoveUp()

59         {

60             m_List.MoveNext();

61         }

62         //向下移动

63         public void MoveDown()

64         {

65             m_List.MovePrevious();

66         }

67         //取得当前的值

68         public int GetCurrentValue()

69         {

70             return m_List.GetCurrentValue();

71         }

72         //删除取得当前的结点

73         public void Delete()

74         {

75             m_List.Delete();

76         }

77         //清空堆栈

78         public void Clear()

79         {

80             m_List.Clear();

81         }

82     }

 

你可能感兴趣的:(数据结构)