【2019暑假刷题笔记-树的遍历】总结
关于树这一块,前期没有做一个学习的绪论,因为时间来不及了。在总结上回顾一下这些题目的一些特点
树的遍历的是数据结构树这一块中的一部分。
树的遍历和二叉树的遍历本质上相同。二叉树用指针也可以做,但是在考试中用静态数组处理树更有优势
树的遍历一般的模板是:输入——递归(设置边界-递归两步)——输出
输入形式的代码:
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); //把孩子结点压进数组 } }
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);} }
结构体的设置:
//根据需要设置结构体 struct Node{int data; //数值或权重vector<int> child; //孩子结点int layer; //层次结构 }
在输出的过程中 ,如果要记录某个最大值,最小值,要在全局里设置。如本题:记录最浅深度,卡了20分钟,可能不是很熟练,做后面一题的时候就避免了这个坑(PS还是要多实践,多做)
可以用数组来记录答案更有优势,如本题:用数组记录答案
【2019暑假刷题笔记-树的遍历】总结相关推荐
- 【2019暑假刷题笔记-图的存储和图的遍历】绪论(代码模板-总结自《算法笔记》)
一.图的存储 图有两种存储办法,分别是邻接矩阵(顶点数≤1000,0表示不连通,数字表示权重)和邻接表(用vector数组实现),具体实现如下: /* 邻接矩阵,G[][] */G[2][3]=1; ...
- 【2019暑假刷题笔记-STL绪论】总结自《算法笔记》
目 录 一.vector的常见用法 二.set的常见用法 三.string的常见用法 四.map的常见用法 一.vector的常见用法 vector是一种可变长数组,常用于使用vector通过 ...
- 【2019暑假刷题笔记-链表】总结自《算法笔记》
目 录 一.创建链表节点 二.创建链表 三.创建链表 四.查找元素 五.插入元素 六.删除元素 七.静态链表 一.创建链表节点 /* struct node{typename data; //数据域 ...
- 【2019暑假刷题笔记-STL绪论(二)】总结自《算法笔记》
目录 五.queue的常见用法 六.priority_queue的常见用法 七.stack的常见用法 八.algorithm头文件下的常用函数 五.queue的常见用法 queue也就是队列,是STL ...
- 【每日一题】Leetcode 刷题 二叉树-树的遍历 介绍
二叉树-树的遍历 前序遍历 (根 左 右) 中序遍历 (左 根 右) 后序遍历 (左 右 根) 代码实现 前序遍历 中序遍历 后序遍历 完整代码 前序遍历 (根 左 右) 遍历顺序分别为: F B A ...
- 渣渣的leetcode刷题笔记-树(1)
这两天在做tree的题目(easy),基本上每道都实现了**recursive**和**iterative**两种解法,简单整理一下. 感想: 能用BFS+queue解决的基本都可以用DFS+stac ...
- 刷题笔记(十四)--二叉树:层序遍历和DFS,BFS
目录 系列文章目录 前言 题录 102. 二叉树的层序遍历 BFS DFS_前序遍历 107. 二叉树的层序遍历 II BFS DFS 199. 二叉树的右视图 BFS DFS 637. 二叉树的层平 ...
- 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...
- leetcode分类刷题笔记
leetcode分类刷题笔记--基于python3 写在前面 1.做题如果实在想不出时间复杂度比较优的解法,可以先写出暴力解法,尝试在其基础上优化 2.排序.双指针.二分等--经常可以优化时间复杂度 ...
最新文章
- Become a science founder fellowship
- 音乐咖android,GitHub - hackers365/musicafe: musicafe音乐咖 — 网易、虾米、QQ音乐一处搞定...
- 在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图
- ESlint 配置从0到1 (二)
- 需求分析报告模板(免费)
- 算法训练 Beaver's Calculator (蓝桥杯)
- *基于RT-Thread的战舰开发板连接Onenent云平台(学习笔记)**
- ios开发--Mac 10.10安装破解版Navicat Premium 11.0.16.dmg
- 铁死亡,究竟该如何检测?- MedChemExpress
- 1分钟链圈 | 区块链人才稀缺,深圳企业提高8%薪酬预算抢才!美投行:加密货币将暴跌90%,大众市场或被消灭...
- ETF操作实战记录:2022-2-21
- Swift中的UIKit重力学(一)
- mysql sql dateadd函数_SQL DATEADD函数 (sqlserver 只更新表中年份,不改其他时间)...
- 【沙龙预告】移动媒体产品新趋势
- Ubuntu下安装JDK/JRE受难记!
- swi 指令能用在C语言吗,SWI指令---软件中断实例详解
- Linux基线安全加固操作实践
- 【DevOps】持续集成的流程及jenkins的介绍
- oracle宿主常量及变量,oracle入门札记
- ios系统getTime兼容问题