广度优先算法用什么存储数据?

如题所述

广度优先用队列,深度优先用栈。把图的深度优先搜索遍历过程中所经历的边保留,其余的彼岸进行删除,生成的树为深度优先树。

深度优先搜索法有递归以及非递归两种设计方法。一般当搜索深度较小、问题递归方式比较明显时,用递归方法设计好,可以使得程序结构更简捷易懂。当搜索深度较大时,当数据量较大时,由于系统堆栈容量的限制,递归容易产生溢出,用非递归方法设计比较好。

扩展资料:

注意事项:

在深度优先搜索中,算法表现得好像要尽快地远离起始点似的。相反在广度优先搜索中,算法好像要尽可能地靠近起始点,首先访问起始顶点的所有邻接点,然后再访问较远的区域,是用队列来实现的。

访问下一个未来访问的邻接点,这个顶点必须是当前顶点的邻接点,标记它,并把它插入到队列中,如果因为已经没有未访问顶点而不能执行规则1时,那么从队列头取一个顶点,并使其成为当前顶点。

参考资料来源:百度百科-深度优先搜索

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-09-21

广度优先算法(BFS)通常使用队列(Queue)来存储数据。

在 BFS 中,队列用于存储待访问的节点,以及与该节点相关的邻居节点。

BFS 会按照先进先出的顺序处理队列中的节点,从而实现图的遍历。