C++ 算法02算法設計的基礎

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.數據結構和數學模型與算法的關係

相關文章
相關標籤/搜索