< 返回版块

rust实现链表,遇到各种问题

lll 发表于

标签:rust,链表 浏览:230 评论:3

我准备用rust实现链表,可以遇到各种问题,不知道怎么解决,求助帮忙看一下

struct LinkList{ header:Option<Box<LinkNode>> }

struct LinkNode{ data:T, next:Option<Box<LinkNode>>, } impl LinkList{ fn new()->LinkList{ LinkList{header:None} } fn add(&mut self,data:T){ let node=LinkNode::new(data); match self.header{ None=>{ self.header=Some(Box::new(node)) } Some(mut x)=>{ let mut tmp=x; while tmp.next.is_some() { tmp=tmp.next.unwrap(); } tmp.next=Some(Box::new(node)); } } } }

impl LinkNode{ fn new(data:T)->LinkNode{ LinkNode{data:data,next:None} } }

fn main() { let a:i32=1; let mut list=LinkList::new(); list.add(a); }

这个是我的写的链表一直在报错,如下是报错的情况 error[E0507]: cannot move out of borrowed content --> src\main.rs:16:16 | 16 | match self.header{ | ^^^^ cannot move out of borrowed content ... 20 | Some(mut x)=>{ | ----- hint: to prevent move, use ref x or ref mut x

warning: variable does not need to be mutable --> src\main.rs:20:18 | 20 | Some(mut x)=>{ | ----^ | | | help: remove this mut | = note: #[warn(unused_mut)] on by default 这个该怎么修改呢?

评论区

漂流 2018-04-05T05:22:29.078093

调整一下格式,markdown 解析的

套路小迷糊 2018-04-06T12:00:19.659064
CrLF0710 2018-04-09T03:31:30.327523

extern crate slab;

解决所有烦恼。

1 共 3 评论, 共 1 页