此文總結一下本書的線性表知識,基礎內容不再贅述,只記錄一些有用的知識。
哨兵節點可以避免一些null值的判斷很方便。迴圈鍊錶在查詢的時候處理查詢失敗的情況很方便。
struct listnode
;int
search
(listnode *head,
int target)
return tag != head ? idx :-1
;}
我們根據矩陣乘法的意義可以寫出乙個矩陣乘法的函式,可以證明ijk的遍歷順序與結果無關。
因為c++的陣列是行主序儲存的,因此先行後列要比先列後行效率高,快取記憶體命中率更大。
int
search
(int
**ma,
int*
*mb,
int*
*mc,
int row,
int n,
int col)
const
int max_size =3;
struct queue
;queue *
createqueue()
bool
push_back
(queue *q,
int val)
intpop_front
(queue *q)
intsize
(queue *q)
可以使用哨兵節點法判斷隊空還是隊滿,主要點還是判斷隊空還是隊滿以及陣列長度上面。
線性表adt包括,陣列實現,單鏈表,雙鏈表,迴圈單、雙鏈表,多維陣列(矩陣)等實現,具體問題具體分析。
特殊的資料結構包括,棧,佇列
資料結構與演算法讀書筆記 棧的應用
斐波那契序列的兩種表示 includevoid fbi iterator int len 遞迴表示法 int fbi recur int len 迭代表示法 int main void return 0 void fbi iterator int len int a 0,b 1 printf d,a...
大話資料結構讀書筆記系列(二)演算法
演算法 演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。演算法具有五個基本特性 輸入 輸出 有窮性 確定性和可行性。演算法設計的要求 應該具有正確性 可讀性 健壯性 高效率和低儲存量的特徵。2.7.1 事後統計方法 這種方法主要是通過設計好的測試程...
資料結構與演算法讀書筆記 簡介
資料 人們利用文字元號 數字符號以及其他規定的符號對現實世界的事物及其活動所做的抽象描述。學號 姓名 性別 資料元素 表示乙個事物的一組資料。是資料 集合 中的乙個 個體 是 資料的基本單位。學號和姓名和性別的整體的一組資料 資料項 構成資料元素的資料,是資料結構中討論的最小單位。學號和姓名和性別的...