筆記3- 哈希表结窘、樹充蓝、二叉樹

哈希表(初步認(rèn)識哈希表)

哈希表(Hash table谓苟,也叫散列表)
是根據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu),它通過把關(guān)鍵碼值映射到表中一個位置來訪問記錄卑笨,以加快查找的速度仑撞。

關(guān)鍵碼值(Key value)也可以當(dāng)成是key的hash值,這個映射函數(shù)叫做散列函數(shù)
存放記錄的數(shù)組叫做散列表座舍。

Hash table需要自定義的內(nèi)容:
散列函數(shù)與散列表大小
hash 沖突的解決方案
裝填因子:為什么需要這個值陨帆?因為數(shù)據(jù)越接近數(shù)組最大值,可能產(chǎn)生沖突的情況就越多


image.png

特點:
數(shù)組(順序表):尋址容易
鏈表:插入與刪除容易
哈希表:尋址容易,插入刪除也容易的數(shù)據(jù)結(jié)構(gòu)

缺點:
擴(kuò)容需要消費大量的空間和性能

應(yīng)用:電話號碼纲爸,字典缩焦,點歌系統(tǒng),QQ盖桥,微信的好友等

設(shè)計:

java1.8之前: 拉鏈法

image.png

從java1.8開始:當(dāng)鏈表長度超過閾值揩徊,就轉(zhuǎn)換成紅黑樹


image.png

關(guān)于哈希表的詳細(xì)介紹和分析塑荒,等樹的內(nèi)容介紹完成以后再介紹

樹的基礎(chǔ)介紹

樹:是n(n>=0)個節(jié)點的有限集姜挺,n=0時候稱為空樹。在任意一棵非空樹中:
1.有且僅有一個特定的稱為根的結(jié)點凌箕;
2.當(dāng)n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,....TM词渤,其中每一個集合本身又是一棵樹缺虐,并且稱為根的子樹;

樹的一些概念介紹:

結(jié)點擁有的子樹稱為結(jié)點的度慧妄;
度為0的節(jié)點稱為葉子結(jié)點或終端結(jié)點,度不為0的結(jié)點稱為非終端結(jié)點或者分支結(jié)點韧掩;
除根節(jié)點以外窖铡,分支節(jié)點也稱為內(nèi)部結(jié)點费彼;
樹的度是樹內(nèi)各結(jié)點的度的最大值口芍;


image.png

節(jié)點的層次:從根開始定義起鬓椭,根為第一層,根的孩子為第二層翘瓮。若某結(jié)點在第一層资盅,則其子樹的根就在1+1層踊赠。其雙親在同一層的結(jié)點互為堂兄弟。樹中結(jié)點最大層次稱為樹的深度或高度今穿。


image.png

樹的存儲結(jié)構(gòu):

1.雙親表示法:


image.png

2.孩子表示法:


image.png

3.雙親孩子表示法:
把每個結(jié)點的孩子結(jié)點排列起來,以單鏈表作為存儲結(jié)構(gòu)鸽斟,
則n個結(jié)點有n個孩子鏈表富蓄,如果是葉子結(jié)點則此單鏈表為空,
然后n個頭指針又組成一個線性表灭红,采用順序存儲結(jié)構(gòu),存放在一個一維數(shù)組中


image.png

4.孩子兄弟表示法:
孩子兄弟表示法為每個節(jié)點設(shè)計三個域:
一個數(shù)據(jù)域君珠,一個該節(jié)點的第一個孩子節(jié)點域策添,一個該節(jié)點的下一個節(jié)點的兄弟指針域


image.png

二叉樹

二叉樹:Binary Tree 是n(n>=0)個結(jié)點的有限集合唯竹,n=0時候稱為空二叉樹苦丁。
在任意一棵非空二叉樹中:一個根結(jié)點和兩棵互不相交的、分別稱為根結(jié)點的左子樹和右子樹产上。

斜樹:
image.png

滿二叉樹:
image.png

完全二叉樹:
image.png

二叉樹的存儲結(jié)構(gòu):

1.順序存儲:使用的不多,不做多余討論

2.鏈?zhǔn)酱鎯Γ?div id="p54y4ns" class="image-package">
image.png

二叉樹的遍歷方法:

/**
*前序遍歷 DLR   -->Array.sort()
*規(guī)則是若二叉樹為空姻僧,則空操作返回蒲牧,否則先訪問跟結(jié)點冰抢,然后前序遍歷左子樹,再前序遍歷右子樹
*/
void ProOrderTraverse(Tree T){
 if(T == null){
  return;
 }
 printf(“%c”,T->data);
 ProOrderTraverse(T->lchild);
 ProOrderTraverse(T->rchild);
}
/**
*中序遍歷 LDR
*規(guī)則是若樹為空翠订,則空操作返回遵倦,否則從根結(jié)點開始(注意并不是先訪問根結(jié)點),
*中序遍歷根結(jié)點的左子樹似谁,然后是訪問根結(jié)點,最后中序遍歷右子樹
*/
void ProOrderTraverse(Tree T){
 if(T == null){
  return;
 }
 ProOrderTraverse(T->lchild);
 printf(“%c”,T-data);
 ProOrderTraverse(T->rchild);
}
/**
*后序遍歷 LRD
*規(guī)則是若樹為空秃诵,則空操作返回菠净,否則從左到右先葉子后結(jié)點的方式遍歷訪問左右子樹彪杉,最后是訪問根結(jié)點
*/
void ProOrderTraverse(Tree T){
 if(T == null){
  return;
 }
 ProOrderTraverse(T->lchild);
 ProOrderTraverse(T->rchild);
  printf(“%c”,T-data);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末派近,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌曙强,老刑警劉巖途茫,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囊卜,死亡現(xiàn)場離奇詭異,居然都是意外死亡雀瓢,警方通過查閱死者的電腦和手機(jī)玉掸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門司浪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啊易,“玉大人,你說我怎么就攤上這事篮奄。” “怎么了牙瓢?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵矾克,是天一觀的道長憔足。 經(jīng)常有香客問我,道長控妻,這世上最難降的妖魔是什么揭绑? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任他匪,我火速辦了婚禮,結(jié)果婚禮上依鸥,老公的妹妹穿的比我還像新娘悼沈。我一直安慰自己絮供,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布蒸播。 她就那樣靜靜地躺著袍榆,像睡著了一般塘揣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上才写,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天赞草,我揣著相機(jī)與錄音,去河邊找鬼洲守。 笑死沾凄,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叙谨。 我是一名探鬼主播保屯,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼姑尺,長吁一口氣:“原來是場噩夢啊……” “哼股缸!你這毒婦竟也來了吱雏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤镰惦,失蹤者是張志新(化名)和其女友劉穎旺入,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凯力,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡茵瘾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了咐鹤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拗秘。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖祈惶,靈堂內(nèi)的尸體忽然破棺而出雕旨,到底是詐尸還是另有隱情扮匠,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布凡涩,位于F島的核電站,受9級特大地震影響活箕,放射性物質(zhì)發(fā)生泄漏力麸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一讹蘑、第九天 我趴在偏房一處隱蔽的房頂上張望末盔。 院中可真熱鬧,春花似錦座慰、人聲如沸陨舱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽游盲。三九已至,卻和暖如春蛮粮,著一層夾襖步出監(jiān)牢的瞬間益缎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工然想, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留莺奔,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓变泄,卻偏偏與公主長得像令哟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子妨蛹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容