这是一个用C++写的,用的是Dijkstra算法,找单源最短路径
[attachment:4929]
- [img]attachment/2006-1/2006121650435450.gif[/img]
- The adjoining matrix is below:(-1 means no path)
- 1 2 3 4 5
- ------------------------------
- 1| 0 10 3 20 -1 |
- 2| -1 0 -1 5 -1 |
- 3| -1 2 0 -1 15 |
- 4| -1 -1 -1 0 11 |
- 5| -1 -1 -1 -1 0 |
- ------------------------------
- Start from 1:
- Step 1, deal with 1: 0 10 3 20 -1
- Step 2, deal with 3: 0 5 3 20 18
- Step 3, deal with 2: 0 5 3 15 18
- Step 4, deal with 4: 0 5 3 15 18
- Paths:
- Path to 2: 1->3->2
- Path to 3: 1->3
- Path to 4: 1->3->2->4
- Path to 5: 1->3->5
- Start from 2:
- Step 1, deal with 2: -1 0 -1 5 -1
- Step 2, deal with 4: -1 0 -1 5 16
- Paths:
- No path to 1
- No path to 3
- Path to 4: 2->4
- Path to 5: 2->4->5
- Start from 3:
- Step 1, deal with 3: -1 2 0 -1 15
- Step 2, deal with 2: -1 2 0 7 15
- Step 3, deal with 5: -1 2 0 7 15
- Paths:
- No path to 1
- Path to 2: 3->2
- Path to 4: 3->2->4
- Path to 5: 3->5
- Start from 4:
- Step 1, deal with 4: -1 -1 -1 0 11
- Step 2, deal with 5: -1 -1 -1 0 11
- Paths:
- No path to 1
- No path to 2
- No path to 3
- Path to 5: 4->5
- Start from 5:
- Step 1, deal with 5: -1 -1 -1 -1 0
- Paths:
- No path to 1
- No path to 2
- No path to 3
- No path to 4
复制代码
[此贴子已经被作者于2006-1-2 17:01:02编辑过]
|