/*複雜的程式設計,思考永遠是最重要的*/
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
int b_tree[20]=;
//int count=0;//因為count不能由開始輸入的資料個數直接看出來 ,故我直接用全域性 變數方便隨時使用
//這段程式我借鑑了鍊錶建立二叉樹的方法,值得仔細推敲
void creat_tree( int *nodelist , int *b_tree ,int n )
b_tree[j]=nodelist[i];
count=j;//二叉樹結構中有效元素的個數,即index -1;
}}void print_tree()//按照二叉樹的形式輸出資料
printf("\n");
}
}int main()
//有效下標為1 to index-1;
creat_tree( nodelist ,b_tree ,index-1 );
printf("bintree is :\n");
print_tree();
system("pause");
return 0;
}
陣列表示的二叉樹
面試某廠的時候面試官問了二叉樹最長路徑的演算法題,給定乙個陣列找出最長路徑的值,第一反應就是動態規劃,結果手寫 的時候懵逼想不起怎麼通過子節點推算父節點的下標,特此記錄警世自己。fun main args array class tree 對應的父節點是 輸出 index 1 值是6 對應的父節點是...
二叉樹的表示
二叉鏈表示法 struct bittree typedef struct bittree bitnode typedef struct bittree bitreee int main void include include include 第二種表示方法 三叉鍊錶 三叉鍊錶 typedef st...
陣列二叉樹
要求 現給一串數字,按照順序從根插入到二叉樹中。但是插入的過程要注意,左子樹的值要小於等於父節點,右子樹的值要大於父節點。例如,序列為1 3 4 2 3 0,插入對應的二叉樹為 1 0 3 2 4 3 建好二叉樹後,從根開始輸出每行數字,每層按照從左到右的順序輸出。輸入 第一行為數字序列長度n 1 ...