原创 數據結構與算法--圖的遍歷方式(深度遍歷和廣度遍歷)
數據結構與算法--圖的遍歷方式(深度遍歷和廣度遍歷)1. 圖的深度優先遍歷2. 圖的廣度優先遍歷 1. 圖的深度優先遍歷 深度優先搜索算法:數據結構是棧。通過將頂點存入棧中,沿着路徑探索頂點,存在新的相鄰頂點就去訪問 鄰接矩陣深度
原创 iOS底層探索 -- KVC 底層原理分析
iOS底層探索 -- KVC 底層原理分析前言1. KVC(Key-Value Coding)初探2. KVC 深入2.1 訪問對象屬性2.2 訪問集合屬性2.3 集合運算符2.4 訪問非對象屬性2.5 屬性驗證
原创 數據結構與算法--線索化二叉樹
數據結構與算法--線索化二叉樹前言1. 線索化二叉樹初探2. 線索化二叉樹實現 前言 前一篇簡單的對二叉樹進行初探,簡單的瞭解了一下二叉樹的一些概念,和二叉樹的 順序存儲 和 鏈式存儲 以及二叉樹的一些簡單操作,和二叉樹的幾種
原创 iOS底層探索 -- KVO探索
iOS底層探索 -- KVO探索前言1. KVO初探1.1 context 的作用1.2 自動觀察1.3 多個因素影響1.4 可變數組的觀察2. KVO 原理分析3. 自定義 KVO 思路4. KVO 函數式編程5. FBKVO
原创 數據結構與算法 -- 哈夫曼樹&哈夫曼編碼
數據結構與算法 -- 哈夫曼樹&哈夫曼編碼前言1. 哈夫曼樹2. 哈夫曼編碼3. 哈夫曼樹 & 哈夫曼編碼 的實現 前言 上一篇瞭解學習了線索化二叉樹的一些知識,這一篇,對哈夫曼樹和哈夫曼編碼來做一個瞭解學習。 首先,我們先看
原创 數據結構與算法--二叉樹的順序存儲&鏈式存儲
數據結構與算法--二叉樹的順序存儲&鏈式存儲1. 樹的相關概念2. 二叉樹的順序存儲2.1 順序二叉樹的基本操作2.2 二叉樹的遍歷3. 二叉樹的鏈式存儲3.1 鏈式二叉樹的基本操作3.2 鏈式二叉樹的遍歷 1. 樹的相關概念 根
原创 iOS -- 經典面試題
iOS -- 經典面試題1. `Runtime` 是什麼?2. 方法的本質是什麼?SEL是什麼?IMP是什麼?兩者之間的關係是什麼?3. 能否向編譯後的得到的類中增加實例變量?能否向運行時創建的類添加實例變量?4. isKindO
原创 數據結構與算法 -- 字符串匹配 KMP算法
數據結構與算法 -- 字符串匹配 KMP算法字符串匹配KMP算法 原理next 數組的推導KMP 算法代碼實現KMP 算法優化KMP 算法優化實現 字符串匹配 題目: 給一個僅包含小寫字母的字符串主串 S = abcacabdc
原创 數據結構與算法--字符匹配 & 字符去重
數據結構與算法--字符匹配 & 字符去重1. 去除重複字母2. 字符串匹配2.1 BF算法-爆發匹配算法2.2 RK算法 1. 去除重複字母 題目 給你一個僅包含小寫字母的字符串,請你去除字符串中重複的字母,使得每個字母只
原创 數據結構與算法--幾個算法題目
數據結構與算法--幾個常見算法題目1. 括號匹配檢驗2. 十進制轉8進制3. 楊輝三角4.爬樓梯問題5. 每日溫度問題6. 字符串編碼問題 1. 括號匹配檢驗 題目: 假設表達式中允許包含兩種括號:圓括號與方括號,其嵌套順序隨
原创 數據結構與算法之如何基於順序存儲和鏈式存儲設計一個隊列
數據結構與算法之如何基於順序存儲和鏈式存儲設計一個隊列前言1. 隊列的結構2. 順序存儲隊列的設計2.1 順序存儲隊列的設計2.2 順序存儲隊列的基本操作3. 鏈式存儲隊列的設計3.1 鏈式存儲隊列的設計3.2 鏈式
原创 數據結構與算法--雙向鏈表和雙向循環鏈表
雙向鏈表和雙向循環鏈表1. 雙向鏈表1.1 概念1.2 雙向鏈接的表結構1.2 雙向鏈接的創建和打印1.3 雙向鏈接的插入1.4 雙向鏈接的刪除 1> 刪除指定位置上的結點 2> 刪除指定指定的元素1.5 雙向鏈接
原创 iOS 分類的加載
iOS 分類的加載前言1. Runtime 面試題2. 類和非懶加載類的加載2.1 類和非懶加載類分析2.2 非懶加載類的加載2.3 懶加載類的加載3. 分類 Category 的加載3.1 clang 初探 分類 C
原创 數據結構與算法之線性表單向循環鏈表
數據結構與算法之線性表單向循環鏈表1. 單向循環鏈表概念2. 單向循環鏈表的操作2.1. 單向循環鏈表的創建2.2. 單向循環鏈表的遍歷2.3. 單向循環鏈表的插入2.4. 單向循環鏈表的刪除2.5. 單向循環鏈表的簡單查詢
原创 iOS OC 對象原理探索三
iOS OC 對象原理探索三前言:1. `isa`指針結構2. `isa`的初始化3. `isa`關聯對象和類4. `isa`的走位5. 對象的本質6. `union`聯合體補充1. 什麼是聯合體2.聯合體的好處 前言: 前面分析