+ 我來(lái)回答
回答最高可+2積分
第一次了解二叉樹(shù),二叉樹(shù)排序,之前是排斥,膽怯,聽(tīng)老師的課通俗易懂,而且還很有意思
2021-06-10
最新回答 / qq_慕數(shù)據(jù)6578363
source里面看,需要打斷點(diǎn)
中序遍歷簡(jiǎn)單變形可以得到求第K大的算法O(nlogn)
前序遍歷可以在O(n)時(shí)間內(nèi)完成二叉樹(shù)的構(gòu)建,因?yàn)樵跇?gòu)建第二個(gè)二叉樹(shù)的時(shí)候,插入一個(gè)節(jié)點(diǎn)不需要從頭開(kāi)始,要添加的節(jié)點(diǎn)的父節(jié)點(diǎn)是已知的,所以這部分logn的時(shí)間變成O(1)的時(shí)間。
前序遍歷可以在O(n)時(shí)間內(nèi)完成二叉樹(shù)的構(gòu)建,因?yàn)樵跇?gòu)建第二個(gè)二叉樹(shù)的時(shí)候,插入一個(gè)節(jié)點(diǎn)不需要從頭開(kāi)始,要添加的節(jié)點(diǎn)的父節(jié)點(diǎn)是已知的,所以這部分logn的時(shí)間變成O(1)的時(shí)間。
2021-01-04
這個(gè)demo的數(shù)組 還是過(guò)于巧合
[8, 3 10, 1, 6 , 14, 4, 7, 13]
這個(gè)剛好是前序遍歷,如果數(shù)組里面的元素沒(méi)有規(guī)則,
那么勢(shì)必就會(huì)存在 需要在中間插入節(jié)點(diǎn)的情況,
所以這個(gè)節(jié)點(diǎn)構(gòu)造的函數(shù) 還是太過(guò)于理想
[8, 3 10, 1, 6 , 14, 4, 7, 13]
這個(gè)剛好是前序遍歷,如果數(shù)組里面的元素沒(méi)有規(guī)則,
那么勢(shì)必就會(huì)存在 需要在中間插入節(jié)點(diǎn)的情況,
所以這個(gè)節(jié)點(diǎn)構(gòu)造的函數(shù) 還是太過(guò)于理想
2020-10-18
我用自己的電腦測(cè)試發(fā)現(xiàn)。
構(gòu)建二叉樹(shù)的時(shí)間 大約是 三種排序時(shí)間的2-3倍。
三種排序之間的平均時(shí)間差不大。
而且電腦最多可以操作1千萬(wàn)個(gè)數(shù)。再多,瀏覽器就崩潰了。
構(gòu)建二叉樹(shù)的時(shí)間 大約是 三種排序時(shí)間的2-3倍。
三種排序之間的平均時(shí)間差不大。
而且電腦最多可以操作1千萬(wàn)個(gè)數(shù)。再多,瀏覽器就崩潰了。
2020-09-29
最新回答 / qq_我愛(ài)看小說(shuō)_04248608
中序遍歷的順序就是: 每次遍歷一個(gè)節(jié)點(diǎn)時(shí),先獲取左子節(jié)點(diǎn)的值,再讀取當(dāng)前節(jié)點(diǎn)的值,最后是右子節(jié)點(diǎn);因?yàn)樽笥易庸?jié)點(diǎn)可能還有子元素,所以要遞歸調(diào)用“inOrderTraverseNode”這個(gè)方法,獲取子元素的值;“callback”方法則是將獲取到的值傳遞到外部;
2020-09-05
這個(gè)真還是有點(diǎn)繞,主要是removeNode這個(gè)函數(shù),在某個(gè)子樹(shù)中刪除某個(gè)節(jié)點(diǎn),參數(shù)1:子樹(shù)的根節(jié)點(diǎn), 參數(shù)2:刪除值為多少的節(jié)點(diǎn), 返回刪除該節(jié)點(diǎn)后的子樹(shù)根節(jié)點(diǎn)
前序 父* -> 左 -> 父 -> 右 ->父
中序 父 -> 左 -> 父* -> 右 ->父
后序 父 -> 左 -> 父 -> 右 ->父*
中序 父 -> 左 -> 父* -> 右 ->父
后序 父 -> 左 -> 父 -> 右 ->父*
2020-06-17
最新回答 / 慕萊塢3474231
<...code...>
最新回答 / qq_慕姐7156285
第一? 判斷是否等于null? 用=== 不是 ==第二node.left = newNode.key;不對(duì)? ?是node.left = newNode;同理right也是