2016-08-25 17 views
-1

レベルオーダートラバーサルから完全ツリーを構築する方法は?レベルオーダートラバーサルから完全ツリーを構築する方法

合計= 7つのノード

20,8,22,4,12、-1、-1

20 
/\ 
    8 22 
/\ /\ 
4 12 -1 -1 

にあなたも

バイナリツリーに-1を持つダミーノードを有することができます

このレベルからツリーを構築する これはできませんか?

+1

'LeftChildIndex = 2 * ParentIndex'と' RightChildIndex = 2 * ParentIndex + 1'(1-inde )。 – Jarod42

+1

あなたは[this](http://stackoverflow.com/help/how-to-ask)を読んで[MCVE](http://stackoverflow.com/help/mcve)を投稿してください – Mirakurun

+4

私は投票をしていません私たちは「gimme teh codez」のサイトではないので、この質問は話題にはなりません!座って宿題をする時間! – Olaf

答えて

1

私には簡単な挿入のようです。 指定した順序でノードの値を取得した場合は、再帰的挿入を実行するだけです。あなたに

void insert(node_t **root, int val) 
{ 
     if (*root == NULL) { 
      *root = malloc(sizeof(node_t)); 
      *root->val = val; 
      *root->left = NULL; 
      *root->right = NULL; 
     } else if ((*root)->val >= val) { 
      insert(&(*root)->left, val); 
     } else { 
      insert(&(*root)->right, val); 
     } 
} 

は、次のようにあなたがそれを呼び出すことができます主な機能です:

int main (void) 
{ 
    node_t *root = NULL; 
    // call this with each value in 
    insert(&root, <your value>); 
} 
  • あなたはもちろんnode_t構造体を定義する必要がありますが、あなたはその要旨
  • これを取得しますコードがコンパイルされていてもコンパイルされていなくても、私は自分の電話機でタイプしました
-2

まず、ピボット値を見つける必要があります。これらの操作を実行した後、要素をソートします(ソートアルゴリズムはbを使用してバブルソートを行います)。

関連する問題