关于邻接表和其深度优先遍历、广度优先遍历的问题

来源:互联网 发布:java 文件加密个解密 编辑:程序博客网 时间:2024/05/22 00:05

如果有一个邻接表存储的图,以0点出发,深度优先遍历和广度优先遍历。

邻接表为:

[0]->[1]->[5]->[6]->END

[1]->[0]->[2]->END

[2]->[1]->[3]->END

[3]->[2]->[4]->[7]->END

[4]->[3]->[5]->[8]->END

[5]->[4]->[0]->[END

[6]->[0]->[8]->[7]->END

[7]->[0]->[8]->[3]->END

[8]->[6]->[7]->[4]->END

邻接表每一行第一个值表示第几个节点,一共有0,1,2……这9个节点。每一行从第二个值开始表示这个节点可以连接到的节点。第一行,0节点可以与1,5,6相连,1节点可以与0,2相连,……8节点可以与6,7,4节点相连。由此关系,可以画出这个图。


由邻接表也可以方便得得出广度遍历的结果,因为广度遍历就是层次遍历,一层一层遍历。广度优先遍历结果为:0 1 5 6 2 4 8 7 3 END

深度优先遍历是从一个节点开始访问一条线链接的所有节点,从这条线最后一个节点再开始深度优先遍历。深度优先遍历的结果为:0 1 2 3 4 5 8 6 7 END。012345一条线,从5开始到0,所以从4再开始到867.

0 0
原创粉丝点击