-1
静的ルート値と2つの子ノードを持つ静的バイナリツリーのデータ構造を作成しようとしました。私は任意の数の子の値に対して動的にしようとしています。どのように私は静的ルートノードでそれを行うことができます。 myArray = {3,11,8,18,21,36,1}とすると、私はどのように実装できますか?複雑なコードを変更したシンプルなコードは役に立ちます。静的ルートノードを持つC#バイナリツリーデータ構造
class Program
{
static void Main(string[] args)
{
TreeNode rootNode = new TreeNode();
rootNode.value = 9;
int[] myArray = { 3, 11 };
for (int i = 0; i < myArray.Length; i++)
{
if (myArray[i] > rootNode.value)
{
//add to right node
TreeNode right = new TreeNode();
right.value = myArray[i];
rootNode.rightNode = right;
}
else
{
//add to left node
TreeNode left = new TreeNode();
left.value = myArray[i];
rootNode.leftNode = left;
}
}
}
}
class TreeNode
{
public int value { get; set; }
public TreeNode leftNode { get; set; }
public TreeNode rightNode { get; set; }
}
どのような種類のバイナリツリーが必要ですか? –
フルバイナリツリー – Kurkula
フルバイナリツリーには、すべてのノードが0または2つの子を持つ条件が1つだけあります。つまり、現在のノードの子孫ノードがどの値に属するかは関係ありませんが、このif(myArray [i]> rootNode.value) 'を投稿します。だから完全なバイナリツリーが必要だが、完全なバイナリツリーを探していると確信していますか? –