2021-12-23 17:57:15 +01:00
|
|
|
# datatypes
|
2021-12-23 14:16:29 +01:00
|
|
|
|
2021-12-23 17:57:15 +01:00
|
|
|
This module provides implementations of less frequently used, but still common
|
|
|
|
data types.
|
2021-12-23 14:16:29 +01:00
|
|
|
|
2021-12-23 17:57:15 +01: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
|
2021-12-26 15:01:36 +01:00
|
|
|
import datatypes
|
2021-12-23 17:57:15 +01:00
|
|
|
|
2021-12-26 15:01:36 +01:00
|
|
|
mut stack := datatypes.Stack<int>{}
|
2021-12-23 17:57:15 +01:00
|
|
|
stack.push(1)
|
|
|
|
println(stack)
|
|
|
|
```
|
|
|
|
|
|
|
|
## Currently Implemented Datatypes:
|
2021-12-23 14:16:29 +01:00
|
|
|
|
2021-12-23 17:23:04 +01:00
|
|
|
- [x] Linked list
|
2021-12-25 11:03:50 +01:00
|
|
|
- [x] Doubly linked list
|
2021-12-23 17:57:15 +01:00
|
|
|
- [x] Stack (LIFO)
|
|
|
|
- [x] Queue (FIFO)
|
2021-12-25 11:03:50 +01:00
|
|
|
- [x] Min heap (priority queue)
|
2022-05-07 19:18:42 +02:00
|
|
|
- [ ] Set
|
2021-12-23 14:16:29 +01:00
|
|
|
- [ ] ...
|