【Rust】标准库-链表
环境
- Time 2022-04-02
- Rust 1.59.0
前言
说明
基于标准库来学习各种数据结构,并不是从头实现数据结构。
特点
链表也是一种线性的数据结构,可以方便地插入和删除元素,不过按位置访问需要从头遍历。
由于 Rust 的所有权机制,实现链表比其它语言复杂,不过标准库已内置。
示例
new
let _ = LinkedList::<i32>::new();
append
fn main() {
let mut list1 = LinkedList::new();
list1.push_back('a');
let mut list2 = LinkedList::new();
list2.push_back('b');
list1.append(&mut list2);
println!("{list1:?}");
}
iter
fn main() {
let mut list = LinkedList::new();
list.push_back(0);
list.push_back(44);
list.iter().for_each(|e| println!("{e}"))
}
is_empty
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
println!("{:?}", list.is_empty());
}
len
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
println!("{:?}", list.len());
}
clear
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
list.clear();
println!("{:?}", list.is_empty());
}
front
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
list.push_back(444);
println!("{:?}", list.front());
}
back
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
list.push_back(444);
println!("{:?}", list.back());
}
push_front
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
list.push_front(444);
println!("{:?}", list.front());
}
pop_front
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
list.push_front(444);
println!("{:?}", list.pop_front());
}
push_back
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
list.push_front(444);
println!("{:?}", list.front());
}
pop_back
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
list.push_front(444);
println!("{:?}", list.pop_back());
}
split_off
fn main() {
let mut list = LinkedList::new();
list.push_back(44);
list.push_front(444);
println!("{:?}", list.split_off(1));
}
总结
使用了标准库中提供的链表。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2021-06-30 【k8s】Volume-pv-nfs
2021-06-30 【k8s】Volume-persistentVolumeReclaimPolicy
2021-06-30 【k8s】Volume-pv
2021-06-30 【k8s】Secret-生成环境变量
2021-06-30 【k8s】Volume-nfs
2021-06-30 【k8s】Volume-hostPath
2021-06-30 【k8s】Volume-emptyDir