Skip to content

nosnakeob/rust-linked-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust链表实现

本项目展示了如何在Rust中实现链表数据结构,包括双向链表和双锁队列。

设计要点

  1. 所有权管理

    • 链表中的所有权流向是关键:头节点持有整个链表的所有权
    • 其他位置使用指针引用以避免所有权转移问题
  2. 安全性与实用性的平衡

    • 适度使用 unsafe 代码以降低实现复杂度
    • 使用 Option<NonNull<T>> 替代原始指针 *mut T,提供更好的类型安全性
  3. 数据结构特点

    • 双向链表:空链表时无节点,使用 Option 包装头尾指针
    • 双锁队列:始终保持一个空节点,头尾指针直接使用非空指针类型

实现的数据结构

  • 双向链表 (DoublyLinkedList)
  • 线程安全的双锁队列 (TwoLockQueue)

About

Is writing a linked list really that hard?

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages