【數(shù)據(jù)結構01】知識點

一浪册、緒論

1.1 數(shù)據(jù)結構的基本概念

邏輯結構:線性、非線性(樹岗照、圖村象、網(wǎng)、集合)

非線性數(shù)據(jù)結構:其邏輯特征是一個結點元素可能有多個直接前驅和多個直接后繼

存儲密度

“單鏈表的存儲密度小于1攒至。原因:“存儲密度=單鏈表數(shù)據(jù)項所占空間/結點所占空間”厚者,而“ 結點所占空間=數(shù)據(jù)項所占空間+存放后繼結點地址的鏈域”;所以迫吐,存儲密度小于1库菲。”

1.2算法和算法評價

算法五大特征:

輸入志膀、輸出熙宇、有窮性、確定性和可行性


二溉浙、線性表

2.1 定義

廣義表對應樹

Q:假定一棵樹的廣義表表示為A(C烫止,D(E,F(xiàn)戳稽,G)馆蠕,H(I,J))惊奇,則樹的長度互躬、深度為?
A: 3赊时,2吨铸。

2.2 線性表的順序表示

2.3 線性表的鏈式表示


三、棧和隊列

3.1 棧

3.2 隊列

數(shù)組Q[0…n]用來表示一個循環(huán)隊列祖秒,f為當前隊頭元素的前一位置诞吱,r為隊尾元素的位置舟奠,假定隊列中元素的個數(shù)總小于n,計算:

注意:區(qū)別表達式——隊空房维、隊滿沼瘫、隊中元素數(shù)量
犧牲一個單元時:
隊空:Q.f=Q.r
隊滿:(Q.r+1)%n=Q.f
隊列中元素個數(shù):(n+Q.r-Q.f)% n

波蘭式(前綴)
是在通常的表達式中,二元運算符總是置于與之相關的兩個運算對象之前咙俩,所以耿戚,這種表示法也稱為前綴表達式

棧和隊列都是線性表阿趁?·
他們是受限線性表膜蛔。線性表(linear list)是數(shù)據(jù)結構的一種,一個線性表是n個具有相同特性的數(shù)據(jù)元素的有限序列脖阵,分一般線性表和受限線性表皂股。

3.3 棧和隊列的應用

括號匹配
表達式求值P92

在運算符優(yōu)先原則下,畫出運算符棧和操作數(shù)棧的變化過程:

檢測到括號命黔,則可以彈出呜呐。。悍募。

遞歸
層次遍歷
計算機系統(tǒng)

3.4 特殊矩陣的壓縮存儲


四蘑辑、串

4.1 串的定義和實現(xiàn)

Q:兩個字符串相等的充要條件?
A:長度相等坠宴;對應位置字符相同洋魂。

4.2 串的模式匹配

Next數(shù)組:

序號 1 2 3 4 5 6 7 8 9
模式串M a b a b a a a b a
Next[j] 0 1 1 1 2 3 4 2 3
Nextval[j] 0 1 0 1 0 4 2 1 0
--- --- --- --- --- --- --- --- --- ---

M同,nextval=next指向的nv;
M不同喜鼓,nextval=自己的next


數(shù)組下標忧设,不說就是0,0起颠通,說了一般是1址晕,1起


五、樹與二叉樹

5.1 樹的基本概念

5.2 二叉樹的概念

Q:二叉樹是不是樹的特殊形式?
不是!雖然二叉樹也屬于一種樹結構,但它 是另外單獨定義的一種樹,并非一般樹的特例顿锰。
它的子樹有順序規(guī)定,分為左子樹和右子樹谨垃。不能隨意顛倒。

二叉樹公式合集:

n個結點:n-1個非空指針域(n1+2n2)
n0=n2+1
H=[down log2n]+1 = [up log2(n+1)]
葉子數(shù)n0 = [up n/2] = [奇數(shù) (n+1)/2] = [偶數(shù) n/2]
雙親序號= [down i/2]
孩子序號= [left 2i] = [right 2i+1]
完全二叉樹_編號最小的葉子結點 = [n=奇數(shù) n2+1] = [n=偶數(shù) n2+2]

5.3 二叉樹的遍歷與線索二叉樹

二叉鏈表的空指針:左前驅硼控,右后繼

5.4 樹刘陶、森林

樹的存儲結構

樹有0(空樹)或1個根節(jié)點:

定義:樹是N個結點的有限集合,N=0時為空樹牢撼,任意非空樹應滿足:

1.僅有一個根結點

2.當N>1時匙隔,其余結點又分為互不相交的有限集合,為根結點子樹

樹熏版、森林纷责、二叉樹的轉換

樹轉 二叉樹:左孩子右兄弟:形態(tài)唯一

二叉樹轉 森林:右孩子變兄弟捍掺,右孩子的右孩子也變兄弟

樹和森林的遍歷

普通樹:某個節(jié)點可能有多個孩子,沒有中根遍歷

森林:由多棵樹組成再膳,邏輯上沒有后序遍歷

5.5 樹與二叉樹的應用

二叉排序樹
平衡二叉樹

目的:避免樹增高過快

平衡因子:h左-h右

LL(右單旋轉)

RR(左單旋轉)

這里的LL挺勿、RR指的是初始狀態(tài)而不是操作動作,因為動作和狀態(tài)是反著來的

LR喂柒、RL旋轉則不會引起歧義

5.5.3 哈夫曼樹和哈夫曼編碼

  • 哈夫曼樹:n1=0

WPL最小的二叉樹

WPL=(W1L1+W2L2+W3L3+...+WnLn)
n = 2n0-1個結點(n0為葉子數(shù))
H_max = n2+1 = n0
H_min = [up log2(n+1)]

  • 哈夫曼編碼

末端矩形內(nèi)容:字符+出現(xiàn)次數(shù)

只有度為0不瓶、1的結點!(若有000灾杰,必有001)


六蚊丐、圖

6.1圖的基本概念

關節(jié)點

如果一個連通的無向圖中的任一頂點被刪除后,剩下的圖仍然連通艳吠,那么這樣的無向連通圖就稱作是雙連通的(biconnected)吠撮。(上圖的無向圖是雙連通的)

如果一個圖不是雙連通的,也就是說存在一些頂點讲竿,將其刪除后圖將不在連通,我們把那些頂點稱為割點或者關節(jié)點(articulation point)弄屡。

6.2圖的存儲與基本操作

存儲結構:

鄰接矩陣法O(n^2)

鄰接表法O(n+e)

6.3圖的遍歷

6.3.1 BFS

6.3.2 DFS

Q:深度優(yōu)先生成樹怎么畫题禀?
A:可以有多個兒子,不一定是二叉樹膀捷,所以隨意畫就行迈嘹;
注意,連通圖才有生成樹全庸,非連通圖產(chǎn)生生成森林秀仲。

6.3.4 圖的遍歷與圖的連通性

無向圖的最小生成樹:包含所有V,不成環(huán)壶笼,保持有連通最少的邊
無向圖的連通分量:極大連通子圖神僵,一定成環(huán)

無向圖:度=邊的2倍
無向連通圖至少有n個結點
無向非連通圖至少有n+1個結點
有向連通圖至少有n個結點
有向非連通圖至少有n+1個結點


6.4圖的應用

任何一個無向連通圖的最小生成樹為什么有一棵或多棵呢?

一棵:只有兩個結點

多棵:保持連通即可

6.4.1 最小生成樹:

6.4.1.1 Prim普里姆算法(稠密):不斷加頂點覆劈、邊

O(V^2)

邊數(shù)較多可以用普里姆算法保礼,因為它是每次加一個頂點,對邊數(shù)多的適用责语。

6.4.1.2 Kruskal克魯斯卡爾算法(稀疏):不斷連邊

O(ElogE)

邊數(shù)較少可以用Kruskal克魯斯卡爾算法炮障,因為克魯斯卡爾算法算法每次查找最短的邊。

6.4.2 最短路徑

6.4.2.1 Dijkstra(單源最短路徑)

每一輪新加入一個頂點到集合S中坤候,之后該頂點的行標記打鉤胁赢,即不更新。

6.4.2.2 Floyd(每對頂點的最短路徑)

逐步嘗試在原路徑加入頂點k作為中間頂點白筹,若新路徑短于原路徑智末,則代替之谅摄。

6.4.4 拓撲排序

6.4.5 關鍵活動

AOE網(wǎng)

有向邊代表活動


七、查找

7.1查找

靜態(tài)查找

動態(tài)查找:二叉排序樹

動態(tài)查找的過程中對表的操作會多兩個動作:如果某特定的關鍵字在表中不存在吹害,則按照一定的規(guī)則將其插入表中螟凭;如果已經(jīng)存在,則可以對其執(zhí)行刪除操作它呀。動態(tài)查找的過程雖然只是多了“插入”和“刪除”的操作螺男。

7.2 順序查找與折半查找

鏈表是不知道地址的,不能隨機訪問數(shù)據(jù)纵穿,所以用二分查找是不合適的下隧。

總的查找次數(shù)是n/2+n/4+n/8+n/16 +........≈ n

在腦海中想象一下最大值的二分查找,每個數(shù)其實都查找了一遍谓媒。

另外淆院,這里說的比較次數(shù),如果查找次數(shù)不算是比較次數(shù)的話句惯,那比較次數(shù)應該是你說的log2n.

7.3 B樹和B+樹

判定樹:

查找成功ASL

查找失敗ASL

7.4 散列表

散列表的基本概念

建立關鍵字和地址的直接映射關系

散列函數(shù)的構造方法
散列表處理沖突的方法:
開放定址:

H_i = ( H(key) + d_i ) % m

線性探測法:d_i為常數(shù)

H(key)=key%P土辩,P一般取質數(shù)

平方探測法(二次探測法,平方再散列):di=1^2,-1^2,2^2,-2^2......

再散列法(雙散列法):Hi=(H(key) + i*Hash_2(key) ) % m抢野,用第二個散列函數(shù)計算關鍵字地址的增量拷淘,每一次增加1也可以,叫做線性探測再散列

偽隨機序列法:d_i為隨機數(shù)序列

拉鏈法

八指孤、排序

8.1 排序的基本概念

基本有序:
Q:在第i 趟直接插入排序中,要進行 i-1 次關鍵字的比較嗎?


8.2 插入排序

直接插入排序:
折半插入排序
希爾排序

8.3 交換排序

冒泡排序:

沒有發(fā)生交換启涯,提前結束,不會做多余運算

希爾排序

8.4 選擇排序

簡單選擇排序
堆排序

8.5 歸并排序和基數(shù)排序

8.6 各種內(nèi)部排序的應用和比較

十大排序算法及其比較:

圖片.png

8.7 外部排序


九恃轩、數(shù)組和廣義表

數(shù)組:沒說開頭序號结洼,開頭序號就是0,0

廣義表:
GetTail取最后一個元素,尾巴多(一個)括號叉跛;
GetHead 取第一個元素

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
禁止轉載松忍,如需轉載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末筷厘,一起剝皮案震驚了整個濱河市挽铁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敞掘,老刑警劉巖叽掘,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玖雁,居然都是意外死亡更扁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浓镜,“玉大人溃列,你說我怎么就攤上這事√叛Γ” “怎么了听隐?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哄啄。 經(jīng)常有香客問我雅任,道長,這世上最難降的妖魔是什么咨跌? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任沪么,我火速辦了婚禮,結果婚禮上锌半,老公的妹妹穿的比我還像新娘禽车。我一直安慰自己,他們只是感情好刊殉,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布殉摔。 她就那樣靜靜地躺著,像睡著了一般记焊。 火紅的嫁衣襯著肌膚如雪逸月。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天亚亲,我揣著相機與錄音,去河邊找鬼腐缤。 笑死捌归,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的岭粤。 我是一名探鬼主播惜索,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剃浇!你這毒婦竟也來了巾兆?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤虎囚,失蹤者是張志新(化名)和其女友劉穎角塑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淘讥,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡圃伶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窒朋。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡搀罢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侥猩,到底是詐尸還是另有隱情榔至,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布欺劳,位于F島的核電站唧取,受9級特大地震影響,放射性物質發(fā)生泄漏杰标。R本人自食惡果不足惜兵怯,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腔剂。 院中可真熱鬧媒区,春花似錦、人聲如沸掸犬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽湾碎。三九已至宙攻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間介褥,已是汗流浹背座掘。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柔滔,地道東北人溢陪。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像睛廊,于是被迫代替她去往敵國和親形真。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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