当前位置: 首页 > article >正文

深度理解递归(树的深度优先遍历、费波那契数列)c++

  •  递归展开图就是一棵树
  • 递归的过程,其实就是在对这棵树执行深度优先遍历

    代码1:遍历树

    //vector存储树
    #include <iostream>
    #include <vector>
    using namespace std;
    
    const int n = 1e5 + 10;
    vector<int> edges[n];
    bool st[n]; //标记哪些结点已经访问过了
    int n;
    
    void dfs(int u)
    {
    	cout << u << " ";
    	st[u] = true;
    
    	for (auto v : edges[u])
    	{
    		if (!st[v])
    		{
    			dfs(v);
    		}
    	}
    }
    
    int main()
    {
    	cin >> n;
    	for (int i = 1; i < n; ++i)
    	{
    		int a, b; cin >> a >> b;
    		edges[a].push_back(b);
    		edges[b].push_back(a);
    	}
    
    	dfs(1);
    
    	return 0;
    }

    再举个简单的例子

    代码2:斐波那契数列 

    #include <iostream>
    using namespace std;
    
    //斐波那契数列
    int fib(int n)
    {
    	if (n == 0 || n == 1) return n;
    	return fib(n - 1) + fib(n - 2);
    }
    
    int main()
    {
    	int n; cin >> n;
    	cout << fib(n) << endl;
    
    	return 0;
    }


    http://www.kler.cn/a/515899.html

    相关文章:

  • 【Prometheus】Prometheus如何监控Haproxy
  • Fastapi + vue3 自动化测试平台(4)-- fastapi分页查询封装
  • [Dialog屏幕开发] 屏幕绘制(文本/输入框/按钮控件)
  • C语言程序设计十大排序—选择排序
  • Matlab自学笔记四十五:日期时间型和字符、字符串以及double型的相互转换方法
  • 【0x04】HCI_Connection_Request事件详解
  • Effective C++ 规则43:学习处理模板化基类内的名称
  • linux+docker+nacos+mysql部署
  • 认识Django项目模版文件——Django学习日志(二)
  • Spring Boot整合Thymeleaf、JDBC Template与MyBatis配置详解
  • 【C语言】编译链接
  • 软考信安26~大数据安全需求分析与安全保护工程
  • 【C++笔记】哈希表底层实现的深度剖析
  • 车间设备数据采集解决方案
  • 智能体的核心技能之插件,插件详解和实例 ,扣子免费系列教程(11)
  • Elixir语言的Web开发
  • 知识产权API:助力金融业投资决策等场景提效!
  • 从理论到实践:Django 业务日志配置与优化指南
  • Facebook新品广告ROI一周速成攻略
  • 2.体验vue
  • 【若依】添加定时任务
  • ansible自动化运维实战--复制模块和用户模块(3)
  • 【0x06】HCI_Authentication_Complete事件详解
  • Solr与Elasticsearch 的对比与选型
  • Unity中关于实现 管道水流+瀑布流动+大肠蠕动效果笔记
  • HTML5 新表单属性详解