首页 > 开发 > 综合 > 正文

C#数据结构篇(二 堆栈) killertang(原作)

2024-07-21 02:28:06
字体:
来源:转载
供稿:网友


c#数据结构篇(二)堆栈



             作者: 寒羽狼 (dark_slaer_tang)



        烟快没有了,别人都说烟有害,但对与我可是必不可少的,呵呵。。,抽一根烟程序就写出来了,好了,再加把劲,我们再完成堆栈,其实堆栈和线性表没什么大的区别,堆栈其实是一种特殊的线性表,使用push 压输入数据,pop 弹出数据,才用,先进后出的原则,就这么简单。前面已经写好了list 类,在这里我们可以调用它。代码如下:



using system;



namespace list
{
/// <summary>
/// 堆栈类
/// </summary>

public class cstack
{  




  //调用链表类
  private  clist m_list;
  



  public cstack()
  {



  //构造函数




   m_list=new clist();



  }



  /// <summary>
  /// 压入堆栈
  /// </summary>
  
  public void push(int pushvalue)
  {
      //参数: int pushvalue 压入堆栈的数据



      m_list.append (pushvalue);
            
  }



  /// <summary>
  /// 弹出堆栈数据,如果为空,则取得 2147483647 为 int 的最大值;
  /// </summary>
  
  public int pop()
  {
  //功能:弹出堆栈数据



  int popvalue;
   
   if (!isnullstack())
   {



    //不为空堆栈



    //移动到顶







    movetop();



    //取得弹出的数据
    popvalue=getcurrentvalue();



   //删除



    delete();
    return popvalue;

   }



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



   return 2147483647;
  }



  /// <summary>
  /// 判断是否为空的堆栈
  /// </summary>
  
  public bool isnullstack()
  {   
   
   if ( m_list.isnull() )
   return true ;



   return false ;
  }



  /// <summary>
  /// 堆栈的个数
  /// </summary>



  public int stacklistcount
  {   



    
   get
   {
    return m_list.listcount ;
   }

  }



  /// <summary>
  /// 移动到堆栈的底部
  /// </summary>



  public void movebottom()
  {



        m_list.movefrist ();
  }



  /// <summary>
  /// 移动到堆栈的top
  /// </summary>
  
  public void movetop()
  {
   m_list.movelast  ();
  }



  /// <summary>
  /// 向上移动
  /// </summary>
  
  public void moveup()
  {
   m_list.movenext();
  }



  /// <summary>
  /// 向上移动
  /// </summary>
  
  public void movedown()
  {
   m_list.moveprevious() ;
  }



  /// <summary>
  /// 取得当前的值
  /// </summary>
  
   public int  getcurrentvalue()
  {
   return m_list.getcurrentvalue ();
  }



  /// <summary>
  /// 删除取得当前的结点
  /// </summary>
  
  public void delete()
  {
   m_list.delete ();
  }



  /// <summary>
  /// 清空堆栈
  /// </summary>




public void clear()



{



     m_list.clear();



}




}
}



     使用先前的链表类,就可以轻松的完成堆栈类,除了基本的,pop,push 方法外,还提供,movebottom,movetop,moveup,movedown ,来访问堆栈中的数据,使用getcurrentvalue方法,来取得数据的值,可以执行更多的操作,呵呵,就这么简单。to be continue.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表