大刀闊斧,抽絲剝繭:評紅黑樹系列文章
二零一一年一月三十日
i、 教你透徹了解紅黑樹:
ii、 紅黑樹演算法的層層剖析與逐步實現
iii、教你徹底實現紅黑樹:紅黑樹的c原始碼實現與剖析
iv、一步一圖一**,一定要讓你真正徹底明白紅黑樹
-------------------------------------------
眾所周知,紅黑樹作為二叉查詢樹的一種,在linux核心中,在眾多的資料結構中,
有著廣泛而相當重要的應用。
然其演算法實現之難度之大,離奇曲折,錯綜複雜,單看紅黑樹的插入、刪除情況,
便已令不少初學者學習紅黑樹的興趣大打折扣。
於是,繼微軟面試100題系列之後,作者july又一次主刀了。
面對紅黑樹這個「龐然」大物,大刀闊斧、抽絲剝繭,
帶領讀者深入紅黑樹內部,窺其奧秘。
巨集觀上,整體把握紅黑樹的各種插入、刪除情況;微觀上,針對每一種插入、刪除情況,
詳盡解剖,細緻入微的**紅黑樹每乙個演算法步驟背後的運作原理,
可謂力道十足,不少讀者熱烈要求作者再繼續闡述其它b樹、2-3-4樹等諸如此類的樹。
當然,這是後話。
第一篇 透徹詳盡 直達心扉
i、 教你透徹了解紅黑樹:
在這份,紅黑樹系列文章裡,作者始終緊抓紅黑樹的5個性質不放,一一闡述樹的左旋、右旋,
紅黑樹的插入、刪除等情況。
在第一篇,教你透徹了解紅黑樹的文章裡頭,作者不但透徹清晰闡述了紅黑樹性質、插入、刪除等情況,
更是列出了一幅幅美妙而精彩的插圖。
說真的,還有什麼比圖來的更直觀、更具形象、更具精彩列?
第二篇 層層剖析 **並茂
ii、 紅黑樹演算法的層層剖析與逐步實現
顯然,面對紅黑樹這個大部頭,一篇文章顯然不足以透徹闡述清楚,
為了讓讀者對紅黑樹有個真正透徹的了解,作者在第二篇文章裡頭:
紅黑樹演算法的層層剖析與實現,手上操的依然是那把鋒利的小刀,面對的仍舊是紅黑樹這個大塊頭,
作者分十層,層層剖析紅黑樹的各個演算法步驟的實現。
令人嘆為觀止,且大加稱讚的是,這次作者竟親自拿著彩筆在白紙上,
一筆一畫,一張一張圖的把紅黑樹各個演算法步驟清晰的畫了出來。
彼節者有間,而刀刃者無厚;以無厚入有間,恢恢乎其於游刃必有餘地矣。
尤其是紅黑樹插入的3種、刪除的4種情況,作者氣定神閒,配圖之間,不見一絲繚亂與草率,
圖畫形象生動,精彩異常。
同時細分十層,層層剖析,鞭辟入裡,細緻入微,不得不令人所折服。
第三篇 認真負責 原始碼上陣
iii、教你徹底實現紅黑樹:紅黑樹的c原始碼實現與剖析
按理說,紅黑樹行文至此,紅黑樹這個大塊頭早已公諸於讀者面前,再無秘密可言,
然令讀者依然沒有想到的是,作者擔心前面倆篇文章,由於給出的是偽碼實現,無法上機驗證,
作者個人從網上找來了乙份c原始碼,一點一點的修正完善,一行一行的新增注釋。
作者面對紅黑樹這個龐然大物,不但無絲毫畏懼,反而越戰越勇,且對他的讀者如此認真負責,
不由,心生敬佩。
第四篇 淋漓盡致 極致瘋狂
iv、一步一圖一**,一定要讓你真正徹底明白紅黑樹
架構顯已剖析透徹,原始碼實現也已經驗證,想此,此紅黑樹系列可告終結了,
然,作者,依然沒有就此罷手,最終,他完成了他的第四篇文章,
一步一圖一**,一定要讓你真正徹底明白紅黑樹,
有一句話,「既然寫了紅黑樹,那麼我就一定要把它真正寫好,讓讀者真正徹底明白紅黑樹。」
可謂,潛龍出水,暢遊千里,直達大洋。
這也正驗證了作者之前說過的一句話,「把一件簡單的事做到極致,便是一種美,一種瘋狂」。
毫無疑問,作者做到了這一點,在最後一篇文章裡,作者一步一圖,一步一**,
絲一根一根地抽,繭一層一層地剝,抽絲剝繭,直抵利害。
本著一定要讓讀者徹底明白紅黑樹的認真負責的精神,繼續闡述,體現的淋漓盡致。
此種極致瘋狂,不達目的誓不罷休,對讀者如此認真負責的精神,
即便放眼整個論壇,亦不多見。
ok,一句話:敢問讀者,盛宴已擺在眼前,是否享用?
完。本人july對本部落格所有任何文章、內容和資料享有版權,
謝謝。july、二零一一年一月三十日。
Vim學習筆記 大刀闊斧
9.1 命令的記錄與回放 1.操作步驟 a.q命令 將後續的動作記錄到名為的暫存器中,其中給出的暫存器名字 必須是a到z之間的乙個字母.b.執行你要執行的操作,按下q以結束對命令的記錄.c.命令 執行剛剛記錄下來的巨集.2.舉個例子 include stdio.h include fcntl.h i...
大刀闊斧,抽絲剝繭 評紅黑樹系列文章
大刀闊斧,抽絲剝繭 評紅黑樹系列文章 二零一一年一月三十日 i 教你透徹了解紅黑樹 ii 紅黑樹演算法的層層剖析與逐步實現 iii 教你徹底實現紅黑樹 紅黑樹的c原始碼實現與剖析 iv 一步一圖一 一定要讓你真正徹底明白紅黑樹 眾所周知,紅黑樹作為二叉查詢樹的一種,在linux核心中,在眾多的資料結...