1.程序的基本結構算法
<1>順序執行express
<2>循環、遞歸結構 (循環初始化、循環體、循環條件)數組
對九宮格進行遍歷數據結構
for(int i = 0; i < 9; i++) { int row = i / 3; int col = i % 3; game->cells[row][col].fixed = false; }
遞歸方式實現二叉樹查找算法spa
bool FindTNode(TNODE *tr, int key) { if(tr == NULL) return false; if(tr->key == key) return true; if(key < tr->key) return FindTNode(tr->left, key); else return FindTNode(tr->right, key); }
<3>分支和跳轉 if case 設計
2.算法的實現與數據結構code
<1>基本數據結構在算法設計中的總用blog
數組(array)遞歸
鏈表(linkde list)隊列
棧 (stack)
棧舉例
bool IsMatchBrackets(const std::string& express) { std::stack<std::string::value_type> epStk; std::string::size_type i; for(i = 0; i < express.length(); i++) { if(IsLeftBrackets(express[i])) { epStk.push(express[i]); } if(IsRightBrackets(express[i])) { if(epStk.empty()) return false; epStk.pop(); } } return epStk.empty(); }
隊列 (queue)
<2>複雜數據結構在算法設計中的應用
樹 (tree)
集合 (set)
哈希表(hash)與映射(map)
圖(graph)
3.數據結構和數學模型與算法的關係