https://github.com/7244/bll
Buildable Linked List
https://github.com/7244/bll
Last synced: 2 months ago
JSON representation
Buildable Linked List
- Host: GitHub
- URL: https://github.com/7244/bll
- Owner: 7244
- License: mit
- Created: 2024-05-13T01:42:31.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2026-03-01T00:03:14.000Z (5 months ago)
- Last Synced: 2026-03-01T03:30:33.634Z (5 months ago)
- Language: C++
- Size: 134 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Buildable Linked List
[](LICENSE)
BLL is a linked list library with many build options.
## Features
- Has too many build options
- Supports cpp and c
### Usage
1. Build options
```c
BLL_set_Mark
// Used for internal debug purposes.
// You can define it to anything then check like if(BLL_set_Mark == X) { print... }
BLL_set_AreWeInsideStruct
// Possible values are 0 or 1. Default is 0.
// Indicates BLL is included inside struct.
// Value 1 will also set language to cpp.
BLL_set_Language
// Possible values are 0 and 1.
// 0 will make bll cpp, 1 will make bll c.
BLL_set_prefix
// Name value is required.
// Sets prefix of every BLL function/type
BLL_set_declare_NodeReference
// Possible values are 0 and 1. Default is 1.
BLL_set_declare_rest
// Possible values are 0 and 1. Default is 1.
// Declares everything that's not NodeReference.
BLL_set_IntegerNR
// Possible values are 0 and 1. Default is 0.
// Makes NR a integer instead of struct.
BLL_set_PreferNextFirst
// Possible values are 0 and 1. Default is 1.
// Making it 1 will increase speed of frequent next use. 0 for frequent prev use.
BLL_set_Recycle
// Possible values are 0 and 1. Default is 1.
// Enables recycle
BLL_set_PadNode
// Possible values are 0 and 1. Default is 0.
BLL_set_SafeNext
// Possible values are >= 0. Default is 0.
// SafeNext makes you able to go next of node that may be deleted.
BLL_set_ResizeListAfterClear
// Possible values are >= 0. Default is 0.
// Resizes list to minimum size after clear. Good for low memory usage.
BLL_set_Link
// Possible values are 0 and 1. Default is 1.
// Enables links between nodes.
BLL_set_LinkSentinel
// Possible values are 0 and 1. Default is 1.
// Enables sentinel nodes.
BLL_set_type_node
// Possible value is integer type. Default is uint32_t
// Type of node id. How many node you can store is 2 ^ (sizeof(t) * 8)
BLL_set_NodeSizeType
// Possible value is integer type. Default is uint32_t
BLL_set_IsNodeRecycled
// Possible values are 0 and 1. Default is 0.
// Enables feature to check if node is recycled or not.
BLL_set_CPP_nrsic
// Possible values are 0 and 1. Default is 0.
// Calls .sic() in NodeReference_t constructor.
BLL_set_CPP_Node_ConstructDestruct
// Possible values are 0 and 1. Default is 0.
// Calls constructor and destructor of node.
BLL_set_CPP_ConstructDestruct
// Possible values are 0 and 1. Default is 0.
// Calls .Open and .Close at constructor and destructor.
BLL_set_NodeReference_Overload_Declare
// Expanded inside NodeReference
BLL_set_Overload_Declare
// Expanded inside BLL_t
BLL_set_NodeData
// Expanded inside NodeData_t
BLL_set_NodeDataType
// If set, NodeData_t typedefs itself to it
BLL_set_CapacityUpdateInfo
// Expanded at capacity update.
BLL_set_OnlyNextLink
// Makes linked list one way. Removes PrevNodeLink
BLL_set_MultiThread
// Makes linked list functions thread-safe.
BLL_set_CountLockFail
// Counts lock fails if multithread enabled.
```
### Depends On
* https://github.com/7244/BVEC
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.