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

2008-01-16  来源:   浏览次数 0

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

9 7 3 1 2 4 8 :


上一篇:一棵C#写的树(1)    下一篇:浅谈C#vsJava(1)

相关主题:

网友评论