2017-06-08 15 views
-4

このメインツリーのすべてのノードにバイナリツリーがあるバイナリツリーを実装する必要があります。私がしたのは、次の2つの構造体を作成することでした。cのノード内のツリー

typedef struct depart{ 
    int salary, employee; 
    struct depart *left, *right; 
}depart; 

typedef struct tree{ 
    int ndepart; 
    depart dpt; 
    struct tree *left, *right;  
}tree; 

私はメインツリーに問題はありません。しかし、私はメインツリーの各ノード内にツリーを作成する方法を理解しておらず、このタイプのデータ構造についてはどこにも見つからなかった。誰かが私にそれについてのヒントを与えることができますか?

+1

"このメインツリーのすべてのノードに内部に2分木があります"というのは不明です。要件を正しく理解していますか?文字通り取られれば、データは 'depart dpt'の代わりに' struct tree * inner_tree'のようなものでなければならないことを意味します。しかし、私の推測では、要件を誤解している可能性があります。バイナリツリーのノードは、 'left'と' right'フィールドを介して他のバイナリツリーを参照しています。多分それが意味するものです。 – kaylum

答えて

0

これは、ツリーの古典的な再帰的定義のように思えます(コメントの@kaylumで言及されているように)。左と右のノードはすべて、おそらく空のバイナリツリーのルートです。もしそうなら、バイナリツリーを形成するだけです。


確かにあなたが必要なものすべてのノードに追加の木であり、それは本当に私には奇妙に聞こえる場合は、ちょうどあなたがすべてのノードでローカルツリーを添付してローカルルートノードのようなものを定義する必要があります。あなたの説明は少し漠然としているので、私は、すべてのノードがそのような追加のツリーと、それ以上のローカルツリーを含まない追加のツリーを持つメインツリーがあると仮定します。あなたは多分だけ*left*right参照を持ち*left,*right,*local_treeが含まれていstruct main_tree_nodeだけでなく、二struct local_tree_nodeを定義する必要があり、混乱を避けるため