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

本文介绍了一种使用C#实现堆栈的方法,通过继承链表类来构建堆栈,并提供了Push和Pop等基本操作,同时还支持移动和获取当前节点值等附加功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C#数据结构篇(二 堆栈) (转)[@more@]

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


  作者: 寒羽狼 (Dark_Slaer_Tang)


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


using System;


namespace List
{
 ///
 /// 堆栈类
 ///
 
 public class CStack
 { 



 //调用链表类
 private  Clist m_List;
 


 public CStack()
 {


  //构造函数



 m_List=new Clist();


 }


 ///
 /// 压入堆栈
 ///
 
 public void Push(int PushValue)
 {
 //参数: int 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 ();
 }


 ///
 /// 移动到堆栈的Top
 ///
 
 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();


}



 }
}


  使用先前的链表类,就可以轻松的完成堆栈类,除了基本的,Pop,Push 方法外,还提供,MoveBottom,MoveTop,MoveUp,MoveDown ,来访问堆栈中的数据,使用GetCurrentValue方法,来取得数据的值,可以执行更多的操作,呵呵,就这么简单。To Be Continue.


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-992491/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-992491/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值