This commit is contained in:
René Fuhry 2023-06-01 14:51:57 +02:00 committed by GitHub
parent f68f7fb00b
commit 6e9137151f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 12 deletions

View File

@ -108,14 +108,16 @@ pub fn calculate_properties(exzentrizitaeten: &Vec<usize>) -> (usize, usize, Vec
pub fn find_components(weg_matrix: &Vec<Vec<usize>>) -> Vec<Vec<usize>> { pub fn find_components(weg_matrix: &Vec<Vec<usize>>) -> Vec<Vec<usize>> {
let mut components: Vec<Vec<usize>> = vec![]; let mut components: Vec<Vec<usize>> = vec![];
let mut component: Vec<usize>; let mut component: Vec<usize>;
let mut i: usize;
for i in 0..weg_matrix.len() {
component = vec![];
for j in 0..weg_matrix.len() { for array in weg_matrix.iter() {
if weg_matrix[i][j] == 1 { component = vec![];
component.push(j + 1); i = 1;
for value in array.iter() {
if value == &1 {
component.push(i);
} }
i += 1;
} }
if !components.contains(&component) { if !components.contains(&component) {
components.push(component); components.push(component);

View File

@ -22,8 +22,10 @@ pub fn mult(matrix1: &Vec<Vec<usize>>, matrix2: &Vec<Vec<usize>>) -> Vec<Vec<usi
let mut sum: u128; let mut sum: u128;
for i in 0..matrix1.len() { for i in 0..matrix1.len() {
product.push(vec![]);
for j in 0..matrix1.len() { for j in 0..matrix1.len() {
if i == 0 {
product.push(vec![]);
}
sum = 0; sum = 0;
for k in 0..matrix1.len() { for k in 0..matrix1.len() {
sum += (matrix1[i][k] * matrix2[k][j]) as u128; sum += (matrix1[i][k] * matrix2[k][j]) as u128;
@ -43,7 +45,7 @@ pub fn show(matrix: &Vec<Vec<usize>>) {
} }
} }
pub fn read_csv(file_name: String) -> Vec<Vec<usize>> { pub fn read_csv(file_name: &str) -> Vec<Vec<usize>> {
let mut matrix: Vec<Vec<usize>> = vec![]; let mut matrix: Vec<Vec<usize>> = vec![];
let dir: String = String::from("/home/rene/projects/Java/graphprogram/csv/"); let dir: String = String::from("/home/rene/projects/Java/graphprogram/csv/");
let file_path = dir + &file_name; let file_path = dir + &file_name;

View File

@ -6,7 +6,7 @@ mod tests {
#[test] #[test]
fn graph() { fn graph() {
let mut adjazenz_matrix: Vec<Vec<usize>> = read_csv("art-brck.csv".to_owned()); let mut adjazenz_matrix: Vec<Vec<usize>> = read_csv("art-brck.csv");
let distanz_matrix: Vec<Vec<usize>> = calculate_distanz_matrix(&adjazenz_matrix); let distanz_matrix: Vec<Vec<usize>> = calculate_distanz_matrix(&adjazenz_matrix);
let weg_matrix: Vec<Vec<usize>> = calculate_weg_matrix(&adjazenz_matrix); let weg_matrix: Vec<Vec<usize>> = calculate_weg_matrix(&adjazenz_matrix);
let exzentrizitaeten: Vec<usize> = calculate_exzentrizitaeten(&distanz_matrix); let exzentrizitaeten: Vec<usize> = calculate_exzentrizitaeten(&distanz_matrix);
@ -47,7 +47,7 @@ mod tests {
#[test] #[test]
fn matrix() { fn matrix() {
let adjazenz_matrix: Vec<Vec<usize>> = read_csv("art-brck.csv".to_owned()); let adjazenz_matrix: Vec<Vec<usize>> = read_csv("art-brck.csv");
assert_eq!(adjazenz_matrix, vec![ assert_eq!(adjazenz_matrix, vec![
vec![0, 0, 1, 1, 0], vec![0, 0, 1, 1, 0],

View File

@ -3,8 +3,7 @@ use crate::graph::{*, matrix::*};
pub mod graph; pub mod graph;
pub fn main() { pub fn main() {
let file_name = String::from("art-brck.csv"); let file_name = "24n.csv";
let mut adjazenz_matrix: Vec<Vec<usize>> = read_csv(file_name); let mut adjazenz_matrix: Vec<Vec<usize>> = read_csv(file_name);
//let mut adjazenz_matrix: Vec<Vec<usize>> = fill_with_random(100); //let mut adjazenz_matrix: Vec<Vec<usize>> = fill_with_random(100);
let distanz_matrix: Vec<Vec<usize>> = calculate_distanz_matrix(&adjazenz_matrix); let distanz_matrix: Vec<Vec<usize>> = calculate_distanz_matrix(&adjazenz_matrix);