提到二叉樹的建立,就不得不提一下「遞迴」,建立二叉樹所採用的思想就是遞迴。
void recursion()
else
}
有了遞迴思想後,我們如何建立二叉樹呢?比如建立如圖的二叉樹:
/*****************普通二叉樹的建立與遍歷************/
void createbitree(tnode *t) /*二叉樹的建立*/
}
二叉排序樹的建立比普通二叉樹多了一點就是在建立的過程中需要對插入進來的資料進行大小的判斷,但是就是因為多了這麼一點,所以不能在遞迴的過程中去輸入資料並插入,而是應該先輸入資料,再將資料插入。插入的過程中要將資料與樹的根結點的值開始比較知道找到合適的位置插入,所以在插入資料的這一部分**中可以使用遞迴演算法。
}//寫乙個函式專門插入子孩子,採用遞迴,從根節點開始尋找合適的插入點
void insertchild(tnode *tree, int c)
else
}else
else}}
資料結構之二叉排序樹
二叉排序樹或者是一棵空樹,或者是具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有節點的值均小於它的根節點的值 2 若右子樹不空,則右子樹上所有節點的值均大於它的根節點的值 3 左 右子樹也分別為二叉排序樹 4 沒有鍵值相等的節點。以下只建立並先序列印出二叉排序樹 include include...
資料結構之二叉排序樹
二叉排序樹 bst binary sort search tree 對於二叉排序樹的任何乙個非葉子節點,要求左子節點的值比當前節點的值小,右子節點的值比當前節點的值大。特別說明 如果有相同的值,可以將該節點放在左子節點或右子節點 比如針對前面的資料 7,3,10,12,5,1,9 對應的二叉排序樹為...
資料結構之二叉排序樹
別名 二叉搜素樹,二叉查詢樹 線性結構的缺點 順序儲存 不排序 查詢困難,只能通過線性查詢乙個乙個找 排序 刪除和插入操作困難 鏈式結構 無論排序還是不排序,查詢都十分麻煩 注 二叉排序樹 bst 可以解決上述的問題 對於乙個二叉樹中的任意乙個非葉子節點,要求左子節點比當前節點小,右子節點比當前節點...