Rust数据结构和算法系列[6]-图论-BFS和DFS

本文探讨了使用Rust语言构建图数据结构,并详细讲解了如何实现广度优先搜索(BFS)和深度优先搜索(DFS)算法。通过链表式结构存储图的顶点信息,然后提供了图的构建函数,最后展示了BFS和DFS的运行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先定义一个链表式的数据结构来存储图的顶点信息

//define a Linked_List
use std::rc::Rc;
use std::cell::RefCell;
pub type Link = Option<Rc<RefCell<Node>>>;
pub struct Node{
    pub x:usize,
    pub next: Link,
}
impl Node{
    pub fn new(x:usize) -> Self{
        Self{
            x,
            next:None,
        }
    }
}
pub struct GraphLink{
   pub first : Link,
   pub last : Link,
}
impl GraphLink{
    pub fn new() -> Self{
        Self{
            first:None,
            last:None,
        }
    }
    pub fn is_emtpy(&self) -> bool{
        return self.first.is_none();
    }
    pub fn print_node(&self){
        let mut current = self.first.clone();
        while let Some(value) = current{
            print!("[{}]",value.borrow().x);
            current = value.borrow().next.clone();
        }
    }
    pub fn get_first(&self) -> Link{
        return self.first.clone();
    }
    pub fn insert(&mut self,x:usize){
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值