Is Rust good for data structures and algorithms?
For using them, very: the standard collections are fast and well documented, sort is stable, and safe Rust rules out dangling pointers and data races at compile time, with no garbage collector. For writing pointer-based structures, it is harder than C or Java, because ownership rules out shared, mutable links unless you opt into Rc and RefCell, and a doubly linked list or a tree with parent pointers is made of exactly those. That difficulty is also the lesson: once you can write them in Rust, you know exactly who owns what.
Which Rust collections match which data structures?
Vec<T> is a dynamic array and your stack, VecDeque<T> is a ring buffer and your queue, HashMap and HashSet are hash tables (SipHash by default, which resists deliberate collisions at some cost in speed), BTreeMap and BTreeSet are ordered B-trees, BinaryHeap<T> is a max-heap, and LinkedList<T> is a doubly linked list you will rarely want over a Vec or a VecDeque. There is no trie or graph type; those you build.
Why is a linked list so hard to write in Rust?
Because every value has exactly one owner. A singly linked list fits that rule: each node owns the next through Option<Box<Node>>. A doubly linked list or a tree with parent links does not, since two pointers lead to every node, so you reach for Rc<RefCell<Node>> with Weak for the back links, or keep the nodes in a Vec and link them by index. Learning Rust With Entirely Too Many Linked Lists exists because so many people get stuck exactly here.
How do I get a min-heap in Rust?
BinaryHeap<T> is a max-heap, so wrap each item in std::cmp::Reverse: push Reverse(x) and the smallest x comes out first. For Dijkstra, push Reverse((distance, node)), and the tuple compares by distance first. Once you have written a heap yourself in step two, flipping its order is obvious.
Which courses on this path are not taught in Rust?
Three: dynamic programming and the Python interview series, taught in Python, and bit manipulation, taught in C++. They are listed after the steps, each with a link that opens it in its own language. A memo table in Rust is a Vec or a HashMap, and integer overflow panics in a debug build, so a bit trick that relies on wrapping spells it out with wrapping_add or wrapping_mul.
Do I need to know Rust before starting this path?
Ownership, borrowing, structs, enums and Option, at least; Box and traits help. If those are new, Coddy's Rust course takes you there first, free, and this path picks up where it ends.