40節(jié)介紹了HashMap,41節(jié)介紹了HashSet,它們的共同實(shí)現(xiàn)機(jī)制是哈希表,一個(gè)共同的限制是沒(méi)有順序,我們提到,它們都有一個(gè)能保持順序的對(duì)應(yīng)類TreeMap和TreeSet,這兩個(gè)類的共同實(shí)現(xiàn)基礎(chǔ)是排序二叉樹(shù),為了更好的理解TreeMap/TreeSet,本節(jié)我們先來(lái)介紹排序二叉樹(shù)的一些基本概念和算法。
基本概念
先來(lái)說(shuō)樹(shù)的概念,現(xiàn)實(shí)中,樹(shù)是從下往上長(zhǎng)的,樹(shù)會(huì)分叉,在計(jì)算機(jī)程序中,一般而言,與現(xiàn)實(shí)相反,樹(shù)是從上往下長(zhǎng)的,也會(huì)分叉,有個(gè)根節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)可以有一個(gè)或多個(gè)孩子節(jié)點(diǎn),沒(méi)有孩子節(jié)點(diǎn)的節(jié)點(diǎn)一般稱為葉子節(jié)點(diǎn)。
二叉樹(shù)是一個(gè)樹(shù),但,每個(gè)節(jié)點(diǎn)最多有兩個(gè)孩子節(jié)點(diǎn),一左一右,左邊的稱為左孩子,右邊的稱為右孩子,我們看兩個(gè)例子,如下所示:
這兩棵樹(shù)都是二叉樹(shù),左邊的根節(jié)點(diǎn)為5,除了葉子節(jié)點(diǎn)外,每個(gè)節(jié)點(diǎn)都有兩個(gè)孩子節(jié)點(diǎn),右邊的根節(jié)點(diǎn)為7,有的節(jié)點(diǎn)有兩個(gè)孩子節(jié)點(diǎn),有的只有一個(gè)。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26