0
私はツリーDFSをトラバースするときに要素を見つける作業に苦労しています。以下は私のツリーの実装です。別のクラスのオブジェクトによってデータが取り込まれています。私が望むのは、与えられた価値によってツリー内の要素を見つけることです。それをしようとするときにいくつかの真の問題があります。ノードへのKey参照を追加して、この参照のためにすべてのノードを検索する方法はありますか?私は本当に助けに感謝します! :) ありがとうございます。このデータが取り込まれますどのようにその本当に見かけないコードから任意のツリー内の特定の要素を見つける
public class TreeNode<T>
{
private T value;
private bool hasParent;
public TreeNode<T> parent;
private List<TreeNode<T>> children;
public TreeNode(T value, TreeNode<T> parent)
{
this.parent = parent;
if (value == null)
{
throw new ArgumentNullException(
"Cannot insert null value!");
}
this.value = value;
this.children = new List<TreeNode<T>>();
}
public T Value
{
get
{
return this.value;
}
set
{
this.value = value;
}
}
public int ChildrenCount
{
get
{
return this.children.Count;
}
}
public class Tree<T>
{
// The root of the tree
private TreeNode<T> root;
public Tree(T value)
{
if (value == null)
{
throw new ArgumentNullException(
"Cannot insert null value!");
}
this.root = new TreeNode<T>(value,null);
}
public Tree(T value, params Tree<T>[] children)
: this(value)
{
foreach (Tree<T> child in children)
{
this.root.AddChild(child.root);
}
}
がたくさんありがとう、これは今はるかに理にかなっています。非常に役に立ちます。 Employeeクラスからインスタンス化されたオブジェクトをツリーに挿入しています。例えば、どうすればいいですかvar node = tree.Root.AddChild($ new Employee); ?私は、このforループの中のオブジェクトをどのように埋めるようにするのですか?この種のデータで可能ですか? –