您好,登錄后才能下訂單哦!
1 /**************************************** 2 > File Name:test.c 3 > Author:xiaoxiaohui 4 > mail:1924224891@qq.com 5 > Created Time:2016年05月20日 星期五 16時11分40秒 6 ****************************************/ 7 8 #include<stdio.h> 9 10 BinaryTreeNode* CreateTree(int* first, int* second, int len) 11 { 12 if(first == NULL || second == NULL || len <= 0 ) 13 { 14 return NULL; 15 } 16 17 int num = first[0]; 18 BinaryTreeNode* node = new BinaryTreeNode(num); //寫入根節點的值 19 20 int i = 0; 21 for(;i < len;i++) //在中序數列中找到與根節點值相同的值 22 { 23 if(second[i] == num) 24 { 25 break; 26 } 27 } 28 29 node->m_pLeft = CreateTree(first[1], second[0], i); //遞歸創建左子樹 30 node->m_pRight = CreateTree(second[i + 1], second[i + 1], len - i - 1); //遞歸創建右子樹 31 32 return first[0]; //返回根節點 33 } 34 35 36 37 //總結:當遇到一般的情況與第一種情況相同時,可以考慮遞歸算法。 38 //當用遞歸算法時,要先找出一般規律,然后根據這個一般規律進行寫代碼
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。