拉链法导致的链表过深问题为什么不用二叉查找树代替,而选择红黑树?为什么不一直使用红黑树?
生活随笔
收集整理的這篇文章主要介紹了
拉链法导致的链表过深问题为什么不用二叉查找树代替,而选择红黑树?为什么不一直使用红黑树?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
之所以選擇紅黑樹(shù)是為了解決二叉查找樹(shù)的缺陷,二叉查找樹(shù)在特殊情況下會(huì)變成一條線性結(jié)構(gòu)(這就跟原來(lái)使用鏈表結(jié)構(gòu)一樣了,造成很深的問(wèn)題),遍歷查找會(huì)非常慢。
而紅黑樹(shù)在插入新數(shù)據(jù)后可能需要通過(guò)左旋,右旋、變色這些操作來(lái)保持平衡,引入紅黑樹(shù)就是為了查找數(shù)據(jù)快,解決鏈表查詢(xún)深度的問(wèn)題,我們知道紅黑樹(shù)屬于平衡二叉樹(shù),但是為了保持“平衡”是需要付出代價(jià)的,但是該代價(jià)所損耗的資源要比遍歷線性鏈表要少,所以當(dāng)長(zhǎng)度大于8的時(shí)候,會(huì)使用紅黑樹(shù),如果鏈表長(zhǎng)度很短的話(huà),根本不需要引入紅黑樹(shù),引入反而會(huì)慢。
?
總結(jié)
以上是生活随笔為你收集整理的拉链法导致的链表过深问题为什么不用二叉查找树代替,而选择红黑树?为什么不一直使用红黑树?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HashMap中put方法的过程
- 下一篇: jdk8中对HashMap做了哪些改变?