2021-12-23 19:57:15 +03:00
|
|
|
# datatypes
|
2021-12-23 16:16:29 +03:00
|
|
|
|
2021-12-23 19:57:15 +03:00
|
|
|
This module provides implementations of less frequently used, but still common
|
|
|
|
data types.
|
2021-12-23 16:16:29 +03:00
|
|
|
|
2021-12-23 19:57:15 +03:00
|
|
|
V's `builtin` module is imported implicitly, and has implementations for arrays,
|
|
|
|
maps and strings. These are good for many applications, but there are a plethora
|
|
|
|
of other useful data structures/containers, like linked lists, priority queues,
|
|
|
|
tries, etc, that allow for algorithms with different time complexities, which may
|
|
|
|
be more suitable for your specific application.
|
|
|
|
|
|
|
|
It is implemented using generics, that you have to specialise for the type of
|
|
|
|
your actual elements. For example:
|
|
|
|
```v
|
|
|
|
import adt
|
|
|
|
|
|
|
|
mut stack := adt.Stack<int>{}
|
|
|
|
stack.push(1)
|
|
|
|
println(stack)
|
|
|
|
```
|
|
|
|
|
|
|
|
## Currently Implemented Datatypes:
|
2021-12-23 16:16:29 +03:00
|
|
|
|
2021-12-23 19:23:04 +03:00
|
|
|
- [x] Linked list
|
2021-12-25 13:03:50 +03:00
|
|
|
- [x] Doubly linked list
|
2021-12-23 19:57:15 +03:00
|
|
|
- [x] Stack (LIFO)
|
|
|
|
- [x] Queue (FIFO)
|
2021-12-25 13:03:50 +03:00
|
|
|
- [x] Min heap (priority queue)
|
2021-12-23 16:16:29 +03:00
|
|
|
- [ ] ...
|