@@ -17,7 +17,7 @@ use std::collections::VecDeque;
1717
1818const V : usize = 6 ; // Number of vertices in graph
1919
20- pub fn bfs ( r_graph : & mut [ Vec < i32 > ] , s : usize , t : usize , parent : & mut [ i32 ] ) -> bool {
20+ pub fn bfs ( r_graph : & [ Vec < i32 > ] , s : usize , t : usize , parent : & mut [ i32 ] ) -> bool {
2121 let mut visited = [ false ; V ] ;
2222 visited[ s] = true ;
2323 parent[ s] = -1 ;
@@ -41,12 +41,12 @@ pub fn bfs(r_graph: &mut [Vec<i32>], s: usize, t: usize, parent: &mut [i32]) ->
4141 false
4242}
4343
44- pub fn ford_fulkerson ( graph : & mut [ Vec < i32 > ] , s : usize , t : usize ) -> i32 {
44+ pub fn ford_fulkerson ( graph : & [ Vec < i32 > ] , s : usize , t : usize ) -> i32 {
4545 let mut r_graph = graph. to_owned ( ) ;
4646 let mut parent = vec ! [ -1 ; V ] ;
4747 let mut max_flow = 0 ;
4848
49- while bfs ( & mut r_graph, s, t, & mut parent) {
49+ while bfs ( & r_graph, s, t, & mut parent) {
5050 let mut path_flow = i32:: MAX ;
5151 let mut v = t;
5252
@@ -76,66 +76,66 @@ mod tests {
7676
7777 #[ test]
7878 fn test_example_1 ( ) {
79- let mut graph = vec ! [
79+ let graph = vec ! [
8080 vec![ 0 , 12 , 0 , 13 , 0 , 0 ] ,
8181 vec![ 0 , 0 , 10 , 0 , 0 , 0 ] ,
8282 vec![ 0 , 0 , 0 , 13 , 3 , 15 ] ,
8383 vec![ 0 , 0 , 7 , 0 , 15 , 0 ] ,
8484 vec![ 0 , 0 , 6 , 0 , 0 , 17 ] ,
8585 vec![ 0 , 0 , 0 , 0 , 0 , 0 ] ,
8686 ] ;
87- assert_eq ! ( ford_fulkerson( & mut graph, 0 , 5 ) , 23 ) ;
87+ assert_eq ! ( ford_fulkerson( & graph, 0 , 5 ) , 23 ) ;
8888 }
8989
9090 #[ test]
9191 fn test_example_2 ( ) {
92- let mut graph = vec ! [
92+ let graph = vec ! [
9393 vec![ 0 , 4 , 0 , 3 , 0 , 0 ] ,
9494 vec![ 0 , 0 , 4 , 0 , 8 , 0 ] ,
9595 vec![ 0 , 0 , 0 , 3 , 0 , 2 ] ,
9696 vec![ 0 , 0 , 0 , 0 , 6 , 0 ] ,
9797 vec![ 0 , 0 , 6 , 0 , 0 , 6 ] ,
9898 vec![ 0 , 0 , 0 , 0 , 0 , 0 ] ,
9999 ] ;
100- assert_eq ! ( ford_fulkerson( & mut graph, 0 , 5 ) , 7 ) ;
100+ assert_eq ! ( ford_fulkerson( & graph, 0 , 5 ) , 7 ) ;
101101 }
102102
103103 #[ test]
104104 fn test_example_3 ( ) {
105- let mut graph = vec ! [
105+ let graph = vec ! [
106106 vec![ 0 , 10 , 0 , 10 , 0 , 0 ] ,
107107 vec![ 0 , 0 , 4 , 2 , 8 , 0 ] ,
108108 vec![ 0 , 0 , 0 , 0 , 0 , 10 ] ,
109109 vec![ 0 , 0 , 0 , 0 , 9 , 0 ] ,
110110 vec![ 0 , 0 , 6 , 0 , 0 , 10 ] ,
111111 vec![ 0 , 0 , 0 , 0 , 0 , 0 ] ,
112112 ] ;
113- assert_eq ! ( ford_fulkerson( & mut graph, 0 , 5 ) , 19 ) ;
113+ assert_eq ! ( ford_fulkerson( & graph, 0 , 5 ) , 19 ) ;
114114 }
115115
116116 #[ test]
117117 fn test_example_4 ( ) {
118- let mut graph = vec ! [
118+ let graph = vec ! [
119119 vec![ 0 , 8 , 0 , 0 , 3 , 0 ] ,
120120 vec![ 0 , 0 , 9 , 0 , 0 , 0 ] ,
121121 vec![ 0 , 0 , 0 , 0 , 7 , 2 ] ,
122122 vec![ 0 , 0 , 0 , 0 , 0 , 5 ] ,
123123 vec![ 0 , 0 , 7 , 4 , 0 , 0 ] ,
124124 vec![ 0 , 0 , 0 , 0 , 0 , 0 ] ,
125125 ] ;
126- assert_eq ! ( ford_fulkerson( & mut graph, 0 , 5 ) , 6 ) ;
126+ assert_eq ! ( ford_fulkerson( & graph, 0 , 5 ) , 6 ) ;
127127 }
128128
129129 #[ test]
130130 fn test_example_5 ( ) {
131- let mut graph = vec ! [
131+ let graph = vec ! [
132132 vec![ 0 , 16 , 13 , 0 , 0 , 0 ] ,
133133 vec![ 0 , 0 , 10 , 12 , 0 , 0 ] ,
134134 vec![ 0 , 4 , 0 , 0 , 14 , 0 ] ,
135135 vec![ 0 , 0 , 9 , 0 , 0 , 20 ] ,
136136 vec![ 0 , 0 , 0 , 7 , 0 , 4 ] ,
137137 vec![ 0 , 0 , 0 , 0 , 0 , 0 ] ,
138138 ] ;
139- assert_eq ! ( ford_fulkerson( & mut graph, 0 , 5 ) , 23 ) ;
139+ assert_eq ! ( ford_fulkerson( & graph, 0 , 5 ) , 23 ) ;
140140 }
141141}
0 commit comments