数据结构里面的一道题,大家动手试试看看,能不能得到正确答案。问题是求深度优先遍历和广度优先遍历的结

数据结构里面的一道题,大家动手试试看看,能不能得到正确答案。问题是求深度优先遍历和广度优先遍历的结果。
大家动手试一下,共同提高进步。谢谢

深度遍历顺序:0,1,2,3,4,5,8,6,7 。
广度优先遍历顺序:0,1,5,6,2,4,8,7,3。
你的图画错了(事实上根本就不需要画图),另外像这种题目根据图做深度优先遍历和广度优先遍历的结果往往不是唯一的,但是如果给出的邻接表则结果是唯一的。追问

答案跟标准答案完全一样,厉害。能否详细讲一下怎样用邻接表做

追答

至于怎么做的只要弄清楚深度优先遍历和广度优先遍历的过程就可以了。深度优先遍历采用的是递归的方式访问整个图的,从一个点出发比如0,然后找与0相连的一个顶点1,接着从1出发找,这个时候找到的第一个顶点是0,刚访问过,不管,找到下一个顶点,该点是2,然后从2开始找。。。另外如果找到一个顶点,发现与它相连的顶点都放访问过了则往前回溯。

广度优先就更好理解了,先找到一个顶点0,然后找到所有与0相连的顶点1、5、6,接着找到所有与1、5、6相连的顶点,这样一圈一圈的找下去知道所有顶点都找到为止。

有空还是有多练一练、模拟一下算法的计算过程

温馨提示:答案为网友推荐,仅供参考
相似回答