BFS和DFS学习笔记
BFS和DFS学习笔记上课上完要交代码,结果根本写不出来,必须狠狠学一波了
什么是BFS和DFSBFS:广度优先搜索DFS:深度优先搜索
BFS和DFS的基本原理BFS使用队列来实现节点遍历,按层次遍历DFS使用栈或递归来实现节点遍历,深度优先遍历
DFS的实现DFS的基本思路DFS全称为“深度优先搜索”,它是一种用于遍历或搜索树或图的算法。其基本思路是从图的一个顶点开始,深度优先地遍历整个图。具体来说,DFS从某个节点出发,沿着一条路径一直往下走,直到不能再走为止,然后回溯到上一个节点,再沿着另一条路径往下走,直到遍历完整张图为止。
DFS的基本思路可以用以下几个步骤概括:
从起点出发,将起点标记为已访问。
找到起点的所有未被访问的邻居节点,并对每个邻居节点进行如下操作:
标记该邻居节点为已访问。
以该邻居节点为起点递归进行DFS。
如果所有邻居节点都被访问过,则回溯到上一个节点,重复步骤2,直到所有节点都被访问。
DFS的基本思路比较简单,但要正确实现DFS还需要注意一些细节问题,比如如何储存图、如何避免重复访问等。接下来将详细介绍DFS的实现过程。
递归实现DFS实现步骤 ...
一些小知识点
一些小知识点关于输入和输出
scanf 和cin知识点:scanf 在读入的时候,不会自动过滤掉空格,制表符cin则自动过滤掉了
fgets 1234 fgets(buf,n,stdin);//buf:这是指向一个字符数组的指针,该数组存储了要读取的字符串//n:这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度//stdin
关于循环
循环n次的一个简单方法
1while(n--){...}
简单斐波那契
123456789101112131415161718#include <iostream>using namespace std; int main() { int n; cin >> n; int a = 0, b = 1; for (int i = 0; i < n; i ++ ) { cout << a << ' '; int c = a + b; a = b; b = c; ...
我的第一篇博客
这是我的第一篇博客二级标题测试三级标题测试你好换行
新起斜体文字两边加上一个* 或者CTRL+I加粗文字两边加上两个* 或者CTRL+B
列表
1+.+空格(列表)
回车后向下扩
二级
Tab加列表级
图片
链接这是一个链接直接将地址复制到想加链接的文字上即可
code1include<iostream>
三个小 ` 括住代码
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment