泛型,IEnumerable接口 ,处理遍历的问题。

问题描述

有这么一个题目,关于树形遍历的问题,我不太理解泛型,IEnumerable<T>,IEnumerable接口在其中的作用,以及能做什么不知道可否讲解一下,这个题的思路,以及大致的解题思路。谢谢了。题目如下:usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;namespaceConsoleApplication2{//说明://以下为一个树的节点的定义,假定:除了需要填写的代码外,其他属性和方法均已实现。//写出一个树节点的前序遍历和后序遍历代码。publicclassTmpTreeNode<T>:IEnumerable<T>,IEnumerable{publicTmpTreeNode(Tvalue);//构造函数publicintCount{get;}//孩子数目publicabstractTmpTreeNode<T>FirstChild{get;}//第一个孩子publicTmpTreeNode<T>LastChild{get;}//最后一个孩子publicTmpTreeNode<T>NextSibling{get;}//弟弟publicTmpTreeNode<T>PreviousSibling{get;}//哥哥publicTmpTreeNode<T>Parent{get;}//父亲publicTValue{get;}//节点存储的对象publicTmpTreeNode<T>AddChild(Tvalue);//增加孩子publicTmpTreeNode<T>AddSibling(TmpTreeNode<T>newNode);//增加弟弟publicvoidPreorderTraveral(Action<T>action)//前序遍历{}publicvoidPostorderTraveral(Action<T>action)//后序遍历{}}}

解决方案

解决方案二:
不知道这个能否帮助你:http://hi.baidu.com/sageking2/blog/item/ef964b0e4c2ac5e037d1221c.html

时间: 2024-10-03 19:02:55

泛型,IEnumerable接口 ,处理遍历的问题。的相关文章

构建可反转排序的泛型字典类(5)--实现IEnumerable接口

5. 实现IEnumerable<KeyValuePair<TKey, TValue>>接口 我们先来看看ReversibleSortedList类的定义: public class ReversibleSortedList<TKey, TValue> : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValu

泛型--集合接口

9.4 集合接口 .NET Framework为集合的枚举和对比提供了两组标准接口:传统的(非类型安全)和新的泛型类型安全集合.本书只聚焦于新的,类型安全的集合接口,因为它更优越. 您可以声明一些指定了类型的ICollection来取代实际类型(如int或string),以用于接口声明中的泛型类型(<T>). C++程序员需要注意:C#泛型和C++中的模板在语法和用法上都很相似.但是,因为泛型在运行期为其指定类型进行扩展,JIT编译器可以为它们的不同的实例共享一段代码,从而使得在使用C++模板

你可能不知道的陷阱, IEnumerable接口

  1.  IEnumerable 与  IEnumerator          IEnumerable枚举器接口的重要性,说一万句话都不过分.几乎所有集合都实现了这个接口,Linq的核心也依赖于这个万能的接口.C语言的for循环写得心烦,foreach就顺畅了很多.          IEnumerable只有一个抽象方法:GetEnumerator(),而IEnumerator又是一个迭代器接口,真正实现了访问集合的功能.  IEnumerator只有一个Current属性,两个方法Mov

没有实现IEnumerable接口怎么也有Getenumerator()?

问题描述 classProgram{publicIEnumeratorGetEnumerator(){yieldreturn"PKU";yieldreturn"SCU";}staticvoidMain(string[]args){Programp=newProgram();foreach(stringiinp){Console.WriteLine(i);}Console.ReadKey();}}如果把GetEnumerator()换个名字,foreach语句那就会说

ListBox的Items不支持IEnumerable接口吗?

问题描述 ListBox.ObjectCollection类:publicclassObjectCollection:IList,ICollection,IEnumerable不是写了ObjectCollection实现了IEnumerable接口的吗?那为什么不能用Where方法listBox20.Items.Where(x=>.....)//为什么不能用? 解决方案 解决方案二:你引用linq命名空间了么?where方法是作为扩展方法添加到Enumerable里面的解决方案三:publics

vb net 接口 泛型-VB.NET 泛型与接口问题

问题描述 VB.NET 泛型与接口问题 interface IDataElement property Name as string property Value as object end interface public class DataElementSet(Of T as IDataElement) implements IList(Of T) ... end class public Class A implements IDataElement ... end class publ

C#中IEnumrator的枚举数和IEnumerable接口

声明IEnumerator的枚举数 要创建非泛型接口的枚举数,必须声明实现IEnumerator接口的类,IEnumerator接口有如下特性: 1.她是System.Collections命名空间的成员 2.它包含3个方法Current.MoveNext和Reset 例如:下面代码实现了一个列出颜色名数组的枚举数类: using System.Collections; class ColorEnumerator:IEnumerator { string [] Colors; int Posit

注解+反射+JDBC,实现一个简易的泛型DAO接口

一.实现思路        1.定义3个Annotation(注解):Entity.Id.Column,Entity作用于Type级别,用于标识JavaBean与数据库表名的映射关系.Id作用于Field级别,用于标识JavaBean中ID属性与表中ID字段的映射关系,Column作用于Field级别,用于标识JavaBean中除ID属性外的其它属性与表中字段的映射关系.      2.在Dao实现类中,通过反射API获得JavaBean中注解和属性的信息,如:表名.字段.JavaBean属性的

IQueryable接口与IEnumerable接口比较

         今天写代码的时候调到IQueryable里面看它的方法,发现它是实现IEnumerable接口的,then i'm confused!                       要区分他俩还是先写段代码来看看吧~                  我们拿出以前那个练习EF增删改查的代码改一改:             #region 查询单个实体 using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口 {