使用面向對象理論、泛型編程思想、C++語言中重載、繼承、接口、多態和模板等技術,實現相關的數據結構和常規算法,打造了一個可複用的數據結構類私有庫。其中建立了線性表的順序存儲、數組、單/雙向/循環鏈表、棧、隊列、通用樹、二叉樹、圖等模板;遞歸、排序、kmp、八皇后問題等算法的實現;頂層弗列、單一繼承樹、異常安全等經典架構設計準則;以及單例模式、代理模式、工廠模式等設計模式也都運用其中。git
全部類及其算法所有利用泛型編程封裝進入自定義命名空間,採用迭代開發的過程,設計時在細節和總體上就有充分考慮其健壯性和拓展性,棵適用於任意數據類型,作到可複用可移植。github
第0課 - 啓航,新的目標! 第1課 - 進階高手的大門 第2課 - 數據的藝術 第3課 - 初識程序的靈魂 第4課 - 程序靈魂的審判 第5課 - 算法的時間複雜度 第6課 - 算法效率的度量 第7課 - 課程學習小問答 第8課 - 泛型編程簡介 第9課 - 智能指針示例 第10課 - C++異常簡介 第11課 - 異常類構建 第12課 - 頂層父類的建立 第13課 - 類族結構的進化 第14課 - 線性表的本質和操做 第15課 - 線性表的順序存儲結構 第16課 - 順序存儲結構的抽象實現 第17課 - StaticList 和 DynamicList 第18課 - 順序存儲線性表的分析 第19課 - 數組類的建立(上) 第20課 - 數組類的建立(下) 第21課 - 線性表的鏈式存儲結構 第22課 - 單鏈表的具體實現 第23課 - 順序表和單鏈表的對比分析 第24課 - 單鏈表的遍歷與優化 第25課 - 靜態單鏈表的實現 第26課 - 典型問題分析(Bugfix) 第27課 - 再論智能指針(上) 第28課 - 再論智能指針(下) 第29課 - 循環鏈表的實現 第30課 - 雙向鏈表的實現 第31課 - 老生常談的兩個宏(Linux) 第32課 - Linux內核鏈表剖析 第33課 - 雙向循環鏈表的實現 第34課 - 棧的概念及實現(上) 第35課 - 棧的概念及實現(下) 第36課 - 隊列的概念及實現(上) 第37課 - 隊列的概念及實現(下) 第38課 - 兩個有趣的問題 第39課 - 字符串類的建立(上) 第40課 - 字符串類的建立(下) 第41課 - KMP 子串查找算法 第42課 - KMP 算法的應用 第43課 - 遞歸的思想與應用(上) 第44課 - 遞歸的思想與應用(中) 第45課 - 遞歸的思想與應用(下) 第46課 - 排序的基本概念 第47課 - 選擇排序和插入排序 第48課 - 冒泡排序和希爾排序 第49課 - 歸併排序和快速排序 第50課 - 排序的工程應用示例 第51課 - 樹的定義與操做 第52課 - 樹的存儲結構與實現 第53課 - 樹中結點的查找操做 第54課 - 樹中結點的插入操做 第55課 - 樹中結點的清除操做 第56課 - 樹中結點的刪除操做 第57課 - 樹中屬性操做的實現 第58課 - 樹形結構的層次遍歷 第59課 - 樹到二叉樹的轉換 第60課 - 二叉樹的深層特性 第61課 - 二叉樹的存儲結構設計 第62課 - 二叉樹中的結點查找操做 第63課 - 二叉樹中的結點插入操做 第64課 - 二叉樹中的結點刪除與清除 第65課 - 二叉樹中屬性操做的實現 第66課 - 二叉樹結構的層次遍歷 第67課 - 二叉樹的典型遍歷方式 第68課 - 二叉樹的比較與相加 第69課 - 二叉樹的線索化實現 第70課 - 二叉樹的經典面試題分析 第71課 - 圖的定義與操做 第72課 - 圖的存儲結構(上) 第73課 - 圖的存儲結構(下) 第74課 - 圖的遍歷(BFS) 第75課 - 圖的遍歷(DFS) 第76課 - 最小生成樹(Prim) 第77課 - 最小生成樹(Kruskal) 第78課 - 最短路徑(Dijkstra) 第79課 - 最短路徑(Floyd) 第80課 - 最長不降低序列(完結)
文件:xx.h
文件:xx.cpp
面試
源碼算法
以上內容整理於狄泰軟件學院系列課程,請你們保護原創!編程