关于树这一块,前期没有做一个学习的绪论,因为时间来不及了。在总结上回顾一下这些题目的一些特点

  1. 树的遍历的是数据结构树这一块中的一部分。

  2. 树的遍历和二叉树的遍历本质上相同。二叉树用指针也可以做,但是在考试中用静态数组处理树更有优势

  3. 树的遍历一般的模板是:输入——递归(设置边界-递归两步)——输出

  4. 输入形式的代码:

    for(int i=0;i<presents;i++){scanf("%d %d",&present,&num);for(int j=0;j<num;j++){scanf("%d",&id);node[present].child.push_back(id);  //把孩子结点压进数组 }
    }
  5. DFS的代码形式:

    
    void DFS(int index,int depth){node[index].layer=depth;ans[node[index].layer]++;if(node[index].child.size()==0){  //设置边界return;}for(int i=0;i<node[index].child.size();i++){  //递归int child=node[index].child[i];DFS(child,depth+1);}
    }
  6. 结构体的设置:

    //根据需要设置结构体
    struct Node{int data;  //数值或权重vector<int> child;  //孩子结点int layer;  //层次结构
    }
  7. 在输出的过程中 ,如果要记录某个最大值,最小值,要在全局里设置。如本题:记录最浅深度,卡了20分钟,可能不是很熟练,做后面一题的时候就避免了这个坑(PS还是要多实践,多做)

  8. 可以用数组来记录答案更有优势,如本题:用数组记录答案

【2019暑假刷题笔记-树的遍历】总结相关推荐

  1. 【2019暑假刷题笔记-图的存储和图的遍历】绪论(代码模板-总结自《算法笔记》)

    一.图的存储 图有两种存储办法,分别是邻接矩阵(顶点数≤1000,0表示不连通,数字表示权重)和邻接表(用vector数组实现),具体实现如下: /* 邻接矩阵,G[][] */G[2][3]=1; ...

  2. 【2019暑假刷题笔记-STL绪论】总结自《算法笔记》

    目     录 一.vector的常见用法 二.set的常见用法 三.string的常见用法 四.map的常见用法 一.vector的常见用法 vector是一种可变长数组,常用于使用vector通过 ...

  3. 【2019暑假刷题笔记-链表】总结自《算法笔记》

    目  录 一.创建链表节点 二.创建链表 三.创建链表 四.查找元素 五.插入元素 六.删除元素 七.静态链表 一.创建链表节点 /* struct node{typename data; //数据域 ...

  4. 【2019暑假刷题笔记-STL绪论(二)】总结自《算法笔记》

    目录 五.queue的常见用法 六.priority_queue的常见用法 七.stack的常见用法 八.algorithm头文件下的常用函数 五.queue的常见用法 queue也就是队列,是STL ...

  5. 【每日一题】Leetcode 刷题 二叉树-树的遍历 介绍

    二叉树-树的遍历 前序遍历 (根 左 右) 中序遍历 (左 根 右) 后序遍历 (左 右 根) 代码实现 前序遍历 中序遍历 后序遍历 完整代码 前序遍历 (根 左 右) 遍历顺序分别为: F B A ...

  6. 渣渣的leetcode刷题笔记-树(1)

    这两天在做tree的题目(easy),基本上每道都实现了**recursive**和**iterative**两种解法,简单整理一下. 感想: 能用BFS+queue解决的基本都可以用DFS+stac ...

  7. 刷题笔记(十四)--二叉树:层序遍历和DFS,BFS

    目录 系列文章目录 前言 题录 102. 二叉树的层序遍历 BFS DFS_前序遍历 107. 二叉树的层序遍历 II BFS DFS 199. 二叉树的右视图 BFS DFS 637. 二叉树的层平 ...

  8. 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...

  9. leetcode分类刷题笔记

    leetcode分类刷题笔记--基于python3 写在前面 1.做题如果实在想不出时间复杂度比较优的解法,可以先写出暴力解法,尝试在其基础上优化 2.排序.双指针.二分等--经常可以优化时间复杂度 ...

最新文章

  1. Become a science founder fellowship
  2. 音乐咖android,GitHub - hackers365/musicafe: musicafe音乐咖 — 网易、虾米、QQ音乐一处搞定...
  3. 在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图
  4. ESlint 配置从0到1 (二)
  5. 需求分析报告模板(免费)
  6. 算法训练 Beaver's Calculator (蓝桥杯)
  7. *基于RT-Thread的战舰开发板连接Onenent云平台(学习笔记)**
  8. ios开发--Mac 10.10安装破解版Navicat Premium 11.0.16.dmg
  9. 铁死亡,究竟该如何检测?- MedChemExpress
  10. 1分钟链圈 | 区块链人才稀缺,深圳企业提高8%薪酬预算抢才!美投行:加密货币将暴跌90%,大众市场或被消灭...
  11. ETF操作实战记录:2022-2-21
  12. Swift中的UIKit重力学(一)
  13. mysql sql dateadd函数_SQL DATEADD函数 (sqlserver 只更新表中年份,不改其他时间)...
  14. 【沙龙预告】移动媒体产品新趋势
  15. Ubuntu下安装JDK/JRE受难记!
  16. swi 指令能用在C语言吗,SWI指令---软件中断实例详解
  17. Linux基线安全加固操作实践
  18. 【DevOps】持续集成的流程及jenkins的介绍
  19. oracle宿主常量及变量,oracle入门札记
  20. ios系统getTime兼容问题

热门文章

  1. 将Sublime Text 2搭建成一个好用的IDE
  2. 官方文档翻译-ESP32-High Resolution Timer
  3. ST17H26之aes模块测试程序
  4. R语言:预测算法常用包总结
  5. newhope代码在vs2019的编译
  6. 【django】站点管理
  7. [register]-04-ARMv8的寄存器简介和总结
  8. 2021-09-22
  9. 【模拟】P1067 多项式输出
  10. 【网络安全】记一次接口加密测试