在c语言中如何实现一个简单的冒泡排序算法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计541个文字,预计阅读时间需要3分钟。
我正在实现一个树,将它的意象转化为一个文件夹结构,所以需要一个这样的类:`public class Folder { // 各种属性如名称等 public IListFolder Children { get; } public Folder Parent { get; } }` 目前我想要的是一个具有Children和Parent属性的Folder类。
我正在实现一个树,把它想象成一个文件夹结构,所以我有一个看起来像这样的类:public class Folder { //Various Props like Name etc. public IList<Folder> Children{get;} public Folder Parent {get;} }
现在我想要的是能够在树上走来走去,所以给了一个根,我可以找到一片叶子,并给出一片叶子,我可以找到根节点.所以每个孩子都需要父母.现在问题是将新节点添加到树的最佳方法是什么.我过去使用过两种解决方案:
>将AddChild(Folder)方法添加到处理添加文件夹的Folder,并设置父级.这个问题是我现在必须锁定我的Children集合,所以你不能绕过这个方法.
>创建我自己的Children集合,该集合将被提供给实例的引用,因此它可以处理在add上设置父级.这个问题我必须实现一个新的集合.
>使用在添加或删除项目时具有事件的集合.
我很好奇人们通常使用什么模式,然后如果有人对我的具体用例有任何建议.我正在使用nHibernate将我的树持久化到SQL服务器.我宁愿不实现自定义集合,因为它是很多代码,可以让它适用于我的应用程序的一小部分.
看完 on MSDN之后你可以试试这个:List<Folder> children; public ReadOnlyCollection<Folder> Children { get { return this.children.AsReadOnly(); } }
如果您的私有成员必须声明为IList,那么我们可以将其复制到列表中然后返回它.但我真的没有看到使用具体实现作为私有成员的问题.稍后更改实现不会破坏兼容性.
IList<Folder> children; public ReadOnlyCollection<Folder> Children { get { return new List<Folder>(this.children).AsReadOnly(); } }
本文共计541个文字,预计阅读时间需要3分钟。
我正在实现一个树,将它的意象转化为一个文件夹结构,所以需要一个这样的类:`public class Folder { // 各种属性如名称等 public IListFolder Children { get; } public Folder Parent { get; } }` 目前我想要的是一个具有Children和Parent属性的Folder类。
我正在实现一个树,把它想象成一个文件夹结构,所以我有一个看起来像这样的类:public class Folder { //Various Props like Name etc. public IList<Folder> Children{get;} public Folder Parent {get;} }
现在我想要的是能够在树上走来走去,所以给了一个根,我可以找到一片叶子,并给出一片叶子,我可以找到根节点.所以每个孩子都需要父母.现在问题是将新节点添加到树的最佳方法是什么.我过去使用过两种解决方案:
>将AddChild(Folder)方法添加到处理添加文件夹的Folder,并设置父级.这个问题是我现在必须锁定我的Children集合,所以你不能绕过这个方法.
>创建我自己的Children集合,该集合将被提供给实例的引用,因此它可以处理在add上设置父级.这个问题我必须实现一个新的集合.
>使用在添加或删除项目时具有事件的集合.
我很好奇人们通常使用什么模式,然后如果有人对我的具体用例有任何建议.我正在使用nHibernate将我的树持久化到SQL服务器.我宁愿不实现自定义集合,因为它是很多代码,可以让它适用于我的应用程序的一小部分.
看完 on MSDN之后你可以试试这个:List<Folder> children; public ReadOnlyCollection<Folder> Children { get { return this.children.AsReadOnly(); } }
如果您的私有成员必须声明为IList,那么我们可以将其复制到列表中然后返回它.但我真的没有看到使用具体实现作为私有成员的问题.稍后更改实现不会破坏兼容性.
IList<Folder> children; public ReadOnlyCollection<Folder> Children { get { return new List<Folder>(this.children).AsReadOnly(); } }

