之前我的博客中講到了如何通過js去實現一顆二叉樹,有興趣的可以去我的博客中看下。今天我們來一起實現下二叉樹的遍歷算法。歡迎大家幫忙指出不當之處,或者進行深入的挖掘。大家一起進步。
二叉樹吶,有三種遍歷算法,1:中序遍歷,2:先序遍歷,3:后序遍歷。在我們看具體實現之前,我們想下為什么要這樣做?二叉樹廣泛應用於大量數據查找的業務中,可以實現更高效率的查找。
1:中序遍歷,即先查找左節點,接着查找根節點,最后查找右節點。不論中序,先序,后序都是以根節點為依據的。下面上代碼
function inOrder(node) { if (!node === null && node instanceof Bst) inOrder(node.left) console.log(node.data) inOrder(node.right) }
2:先序遍歷:
function inOrder(node) { if (!node === null && node instanceof Bst) console.log(node.data) inOrder(node.left) inOrder(node.right) }
后序遍歷類似,相信大家也能招到一定規律了。