当前位置: 首页 > 图文教程 > .Net技术 > C# > C#:小编教大家实现堆栈

C#
C#和Java的区别
提高C#编程水平的50个要诀
GridView 删除/更新/取消
c#线程
C#泛型有什么好处
总体了解C#
C#2.0匿名函数
GridView中添加一个CheckBox列
C#2.0介绍之Iterators(迭代器)
.NET与Java间进行Web Service交互的选择
C# 2010命名和可选参数的新特性
利用C#远程存取Access数据库
C#中foreach基础使用方法
C#中用鼠标移动页面功能的实现
C# 4.0中泛型协变性和逆变性详解
C#:C# .Net中的类型相互转换教程
C#:C#中的基元类型
C#:语言中的重要知识详细介绍与解释
C#:浅谈C#中的集合对象(Collections)
C#:C#发起邮件会议

C#:小编教大家实现堆栈


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 328 ::
收藏到网摘: n/a

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

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

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

  }

}