用C#实现堆栈

  • 来源: 程序员之家 作者: sevenleaf   2010-04-20/17:30
  •       栈是一种重要的数据结构。从数据结构的角度看,栈也是线性表,其特殊性在于栈的基本操作是线性表操作的子集,它们是操作受限的线性表,因此可以称为限定性的数据结构。
          栈是限定仅在表尾进行插入或删除操作的线性表。因此对栈来说,表尾端有其特殊含义,称为“栈顶”,相应地,表头端称为“栈底”,不含元素的空表称为空栈。栈的修改是按照后进先出的原则进行的。因此栈又称为后进先出的线性表,在实现栈的数据结构时一定要注意这个特点。栈的基表操作除了在栈顶进行插入或删除外,还有栈的初始化、判断是否为空以及取栈顶元素等。具体代码如下:
    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}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多