用C#实现堆栈

资讯 驱动中国 sevenleaf 4,705 次阅读 0 条评论
分享 Q

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

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友