• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

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

发布: 2007-6-30 23:38 | 作者: admin | 来源: | 查看: 11次 | 进入软件测试论坛讨论

领测软件测试网 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.


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网