程序员之家 >> 文章 >> .Net技术 >> C#
C#——小编教大家实现堆栈
作者:娜   来源:程序员之家   发布者:admin
时间:2009-08-21 13:43:37   点击:884

是一种重要的数据结构。从数据结构的角度看,栈也是线性表,其特殊性在于栈的基本操作是线性表操作的子集,它们是操作受限的线性表,因此可以称为限定性的数据结构

栈是限定仅在表尾进行插入或删除操作的线性表。因此对栈来说,表尾端有其特殊含义,称为“栈顶”,相应地,表头端称为“栈底”,不含元素的空表称为空栈。栈的修改是按照后进先出的原则进行的。因此栈又称为后进先出的线性表,在实现栈的数据结构时一定要注意这个特点。栈的基表操作除了在栈顶进行插入或删除外,还有的初始化、判断是否为空以及取栈顶元素等。具体代码如下:

Public class CStack

{

   //调用链表类

   Private Clist m_List;

   Public Cstack()

   {

    //构造函数

    m_List=new Clist();

   }

   //压入堆栈

   Public void Push(int PushValue)

   {

    //参数PushValue是压入堆栈的数据

    m_List.Append(PushValue);

   }

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

   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();

  }

}

转载请注明出处:  程序员之家  http://www.sunxin.org

最新文章
点击排行