2016-08-25 26 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

我正在投票關閉這個問題作爲題外話,因爲我們不是「給我的代碼」網站!時間坐下來做你的功課! – 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

首先你應該找到樞軸值。那麼你會在執行這些操作後對元素進行排序(任何排序算法將使用更好的方式來進行冒泡排序)。