對(duì)于數(shù)據(jù)結(jié)構(gòu)“樹(shù)”,想必大家都熟悉,今兒,我們就再來(lái)回顧一下數(shù)據(jù)結(jié)構(gòu)中的二叉樹(shù)與樹(shù),并用JavaScript實(shí)現(xiàn)它們。
ps:樹(shù)結(jié)構(gòu)在前端中,很多地方體現(xiàn)得淋漓盡致,如Vue的虛擬DOM以及冒泡等等。
二叉樹(shù) |
--概念--
二叉樹(shù)是一種樹(shù)形結(jié)構(gòu),它的特點(diǎn)是每個(gè)結(jié)點(diǎn)至多只有兩棵子樹(shù)(即二叉樹(shù)中不存在度大于2的結(jié)點(diǎn)),并且,二叉樹(shù)的子樹(shù)有左右之分,其次序不能任意顛倒。
如下,就是一棵二叉樹(shù)(注:下文二叉樹(shù)相關(guān)例子,都以該二叉樹(shù)為例):
且,遍歷二叉樹(shù)(traversing binary tree)有三種常用方式,如下:
1)、先序遍歷二叉樹(shù) (根左右