zoukankan      html  css  js  c++  java
  • C++ 算法02算法设计的基础

    1.程序的基本结构

      <1>顺序执行

      <2>循环、递归结构  (循环初始化、循环体、循环条件)

    对九宫格进行遍历

    for(int i = 0; i < 9; i++)
    {
        int row = i / 3;
        int col = i % 3;
        game->cells[row][col].fixed = false;
    }

    递归方式实现二叉树查找算法

    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.算法的实现与数据结构

      <1>基本数据结构在算法设计中的总用

        数组(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.数据结构和数学模型与算法的关系

  • 相关阅读:
    Java实战项目收集
    Drebin数据集
    网络“法官”
    沉醉
    孔方兄
    《Qt 5.9 C++开发指南》例程源码
    《论语》中那些耳熟能详的词汇
    破祟
    Qt使用UI编辑器添加的控件Icon运行时不显示
    Ubuntu格式化SD卡
  • 原文地址:https://www.cnblogs.com/sailifsh-lyh/p/10867669.html
Copyright © 2011-2022 走看看