注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

数组、索引器和集合(九)  

2010-12-27 15:21:04|  分类: C# & .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

栈(Stack)是一种先进后出的集合,最后添加到栈中的元素会被最先读取。Queue 类相同,非泛型类Statck 也执行了ICollectionIEnumerable ICloneable 接口;泛型类Statck<T>实现了IEnumerable<T>ICollection IEnumerable 接口。其逻辑结构如下图:

数组、索引器和集合(九) - Castor - 趁年轻,多折腾~~

 

栈的重要方法和属性如下表:

属性或方法

说明

Count

返回栈中元素数目

Clear()

清空栈

Clone()

创建一个副本

Contains()

确定栈中是否存在某个元素

CopyTo()

将栈的元素复制到一个已存在的一维数组中

GetEnumerator()

返回栈的枚举器

Peek()

返回栈顶对象,但不删除

Pop()

在栈顶弹出一个对象(出栈)

Push()

在栈顶压入一个对象(入栈)

ToArray()

将元素复制到一个新数组中

一个使用Stack的代码如下:

using System;

using System.Collections.Generic;

using System.Text;

namespace Castor

{

    class Test

    {

        //主程序入口

        static void Main(string[] args)

        {

            Stack<string> cS = new Stack<string>();

            cS.Push("C#");

            cS.Push("Is a very");

            cS.Push("Beautiful");

            cS.Push("Language");

            PrintStack(cS);

            Console.Read();

        }

        public static void PrintStack(IEnumerable<string> MyColl)

        {

            //返回一个循环访问集合的枚举数

            IEnumerator<string> MyIEnum = MyColl.GetEnumerator();

            while (MyIEnum.MoveNext())

            {

                Console.Write("{0} ", MyIEnum.Current);

            }

            Console.WriteLine();

        }

    }

}

运行效果如下:

 

数组、索引器和集合(九) - Castor - 趁年轻,多折腾~~

 

遍历将按照和入栈相反的方式显示其中的元素。注意这里遍历并不会弹出元素,运行完之后栈中元素如下:

 

数组、索引器和集合(九) - Castor - 趁年轻,多折腾~~

 

  评论这张
 
阅读(377)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016