Eclipse开发平台 Eclipse集成开发环境 Java技术参考 J2EE企业应用项目 J2EE开发框架整合应用
Visual Studio 2008 技术 Visual Studio 2008集成环境 LINQ SQL Server 2008数据库 Silverlight WCF WPF WWF
平台综合 开发平台技术动态 跨平台开发 软件信息技术与商业 国外媒体技术资讯
程讯网下载 精品代码 — J2EE应用下载 精品代码 — ASP.NET应用 常用J2EE开发框架 流行ASP.NET开发框架

搜索
Google
 
最新文章
对“职业生涯及规划”的一些想法与建议
 
Visual Studio 10将会怎样?
 
三十怎么了? 心态最重要!
 
访问Microsoft格式文件的Jakarta-POI API库的.NET版本
 
dashCommerce 3.X如何安装Microsoft SQL Server 2005 Express Edition的高级服务功能
 
.net 2.0运行时提示以下错误:authentication mode=Windows 解决方法如下
 
在浏览器中发贴子时实现自动添加贴子签名档的BHO对象设计
 
C#下用Browser Helper Object对象实现拦截IE浏览器的各项消息的IE插件
 
Build a Managed BHO and Plug into the Browser
 
在C#中用WM_COPYDATA消息来实现进程间通信的详细编码
 
BHO 浏览器辅助对象关联原理、编写流程
 
Oracle8i的卸载
 
Oracle9i图形工具OEM的简介
 
详细介绍整个Oracle9i软件的安装过程
 
C# 面向对象设计模式纵横谈 - 18、Iterator迭代器(行为型模式)
 
 
C# 2.0实用开发 - Stack堆栈类 - C#初级编程、.NET技术门外汉、基础性概念通俗理解
 
内容摘要 -


全文 -

C# 2.0实用开发 - Stack堆栈类


堆栈是一种后进先出(LIFO)的数据结构。回顾Queue队列类中的货物管理的例子,队列类将先入仓的货物后出仓,但假如有一些实时性非常强的货物,需要后入仓先出仓,示意如图9.11所示,则很容易发现与图9.9的区别。

 

图9.11  后进先出的图示

 9.4.1  创建堆栈
为了创建Stack类的实例,需要调用Stack类提供的构造函数。Statck类的构造函数提供了三种重载形式,声明代码如下所示。

//使用默认的初始容量创建Stack类的新实例

public Stack();

//使用从ICollection集合复制的元素来创建Stack类的实例,并具有与集合元素数目相同的初始容量

public Stack(ICollection col);

//通过指定初始容量来创建Stack类的实例

public Stack(int initialCapacity);

下面的代码示范这三种构造函数的使用方法。

//使用默认容量

Stack sack = new Stack();

//使用由string数组中的集合元素初始化堆栈对象

Stack sack1 = new Stack(new string[5] { "堆栈元素一", "堆栈元素二", "堆栈元素三", "堆栈元素四", "堆栈元素五" });

//创建堆栈对象并指定20个元素

Stack sack2 = new Stack(20);

 9.4.2  元素入栈
为了将元素压入堆栈,可以调用Stack类的Push方法,这个方法的声明如下。

public virtual void Push(object obj)

这个方法需要一个object类型的参数obj,表示要被压入到堆中的对象。下面的代码例示了压入栈的操作。

static void Main(string[] args)

{

    //声明并实例化一个新的Stack类

    Stack sk = new Stack();

    //调用Push方法压入堆栈

    sk.Push("堆栈元素一");

    sk.Push("堆栈元素二");

    sk.Push("堆栈元素三");

    sk.Push("堆栈元素四");

    //在控制台窗口中显示堆栈内容

    DisplayResult(sk);

    Console.ReadLine();

}

//在控制台窗口中显示堆栈内容

static void DisplayResult(Stack sk)

{

    foreach (object s in sk)

    {

        Console.WriteLine(s);

    }

}

代码示例的结果如图9.12所示。

 

图9.12  压入栈的例示结果

通过图9.12,可以看到元素的排列顺序是后入栈的排列在最前,符合LIFO的规则。

 9.4.3  元素出栈
元素出栈是指:移除Stack顶部的元素,并返回这个元素的引用。可以通过调用Pop方法实现元素出栈。另外Stack还提供了Peek方法,用于获取顶部元素对象,这个方法并不移除顶部元素。这两个方法的声明如下所示。

public virtual object Peek();

public virtual object Pop();

下面将通过示例代码来演示元素出栈的操作。

static void Main(string[] args)

{

    Stack sk = new Stack();

    sk.Push("堆栈元素一");

    sk.Push("堆栈元素二");

    sk.Push("堆栈元素三");

    sk.Push("堆栈元素四");

    //在控制台窗口中显示堆栈内容 

    DisplayResult(sk);

    Console.WriteLine("堆栈顶部的元素是:");

    Console.WriteLine(sk.Peek());

    Console.WriteLine("移除顶

9 7 3 1 2 4 8 :

 
相关内容
查找更多 ◇ C#初级编程、.NET技术门外汉、基础性概念通俗理解