Rust Graph
Anonymous
Rust
10/14/2025 9:08 PM
895 B
679
Indexable
Never
#[derive(Clone)]
struct Node<T> {
index: usize,
data : Rc<T>
}
struct Graph {
list_repr: Vec<Vec<usize>>,
// matrix_repr: Vec<Vec<bool>>,
}
impl Graph {
fn new() -> Self {
Graph {
list_repr: vec![vec![]; 0],
// matrix_repr: vec![vec![false; 5]; 5],
}
}
fn connect<T, C>(&mut self, a: &Node<T>, b: &Node<C>) {
self.list_repr[a.index].push(b.index);
}
fn add_node<T>(&mut self, data : T) -> Node<T> {
let new_node = Node {
index: self.list_repr.len(),
data: Rc::new(data)
};
self.list_repr.push(vec![]);
new_node
}
}
#[test]
fn graph_test() {
let mut graph = Graph::new();
let node_a : Node = graph.add_node(123);
let node_b : Node = graph.add_node("work".to_owned());
graph.connect(&node_a, &node_b);
print!("{}", graph);
}
Editor is loading...
Leave a Comment