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