Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
482 views
in Technique[技术] by (71.8m points)

BFS/DFS 算法在实际场景中有什么作用

目前仅知道BFS/DFS 这2个算法可以用来遍历二叉树,但是他究竟能用到哪个实际场景中呢。二叉树用能用来干什么?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

树是非线形结构,这决定了它不是一定要线性存储,这样对于大块连续内存的要求较小,有利于提高计算机资源利用率。一个例子是linux操作系统的文件系统,绝大多数都是以树的形式存储的。
下图是linux ext4文件系统的示意图:
image.png
就如上面的哥们所说,搜索文件的时候,或者在cp -r的时候,也都运用到了DFS。
和最上面的哥们有一些不同的看法,软件开发中其实在通用场景树比图的出现概率要更高一些。而DFS的用处很多时候依赖于树的功能,比如二叉搜索树DFS就是可以等价理解为O(N)排序过程。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...