あなたはInorder Tree Traversalをお探しですか?私が何か誤解していない限り。
http://www.cplusplus.com/forum/beginner/131457/
void Tree:: Inorder(Node* Root)
{
if(Root != NULL)
{
Inorder(Root->Left());
cout << Root->Key() << endl;
Inorder(Root->Right());
}
}
この小さな機能は、彼らが「ルート」で始まる現れるために、ツリーのすべてのノードをプリントアウトするために再帰呼び出しを使用しています。私はこの出発点で、あなたはそれをかなり簡単に理解できるはずだと思います。そうでない場合は、私に知らせてください(またはこれがあなたが探しているものでもない場合)。これはC++の例ですが、それでもあなたを助けるはずです。
EDIT:トラバーサルの深さ(Traversing a tree of objects in c#)を追跡する:
printRoot(Node node)
{
printNode(node, 0);
}
printNode(Node node, int level)
{
printTitle(node.title)
foreach (Node child in node.children)
{
printNode(child, level + 1); //<-- recursive
}
}
EDIT 2:あなたがこれを使用する方法の、まだわからないので、私は、コードを記述します。
public void InorderTraversal(TreeNode root){
InorderTraversal(root, 0);
}
public void InorderTraversal(TreeNode root, int level){
//this is where you write to excel. You can also use 'level' to decide if you insert in column 1, 2, or 3 just by using a simple if statement like this:
if(level == 0)
sw.WriteLine(node, level.ToString());
foreach (TreeNode child in root.children){ //depending on how your tree is implemented this is probably either going to be root.children or root.next
InorderTraversal(child, level + 1);
}
}
あなたのコードでこれを使用するには:
void main(void){
InorderTraversal(treeView1.Nodes);
}
は、あなたが(すなわち、特定のツリー与えられ、何がこの方法から、あなたの出力になります)、簡単な入力/出力の場合の例を与えることができますか?それはあなたの質問にもっと明確な答えを与えるのに役立ちます。 – tjcertified
ツリービューは、以下のWeb画像からこのようになります。チェックボックスはありませんhttps://www.codeproject.com/Articles/202435/Tri-State-Tree-View – FlaxoIce
ツリービューは、たとえば私がこのツリーを持っているようなものです。これはあなたの例から得られたものです。 動物 犬猫 魚 淡水 ローチ ブリーム 塩水 スケート SkateChild ソウル – FlaxoIce