广度优先探索可回答两类问题:
第一类问题:从节点A出发,有前往节点B的路径吗?(例如在你的人际关系网中,有芒果销售商吗?)
第二类问题:从节点A出发,前往节点B的哪条路径最短?(例如哪个芒果销售商与你的关系最近。)
队列:
查找关系网的时候,你需要按照添加顺序进行查找,有一个可实现这种目的的数据结构,那就是队列。
队列只有两种操作:入队和出队。
总结:队列是一种先进先出(First In First Out , FIFO)的数据结构,而栈是一种后进先出(Last In First Out , LIFO)的数据结构。
栈:
队列:
总结:
广度优先探索指出是否有从A到B的路径。
如果有,广度优先探索将找出最短路径。
面临类似于寻找最短路径的问题时,可尝试使用图来建立模型,再使用广度优先探索来解决问题。
鸡汤:
时间是挤出来的,与其无意义的浪费,不如做些能充实自己的事情。