Data Structure Selector Skill
Purpose
Select the optimal data structure based on required operations, their frequencies, and time/space constraints.
Capabilities
- Analyze required operations (insert, delete, query, update)
- Match to optimal data structure
- Consider time/space trade-offs
- Suggest augmentations for custom requirements
- Compare alternatives with complexity analysis
Target Processes
- data-structure-implementation
- algorithm-implementation
- complexity-optimization
Selection Framework
Operation Analysis
- What operations are needed?
- What are the frequency/priority of each operation?
- What are the constraints (N, Q, time limit)?
- Is persistence needed?
- Are range operations required?
Common Selection Patterns
| Operations | Best Choice | |------------|-------------| | Insert, Delete, Search | BST / Hash Map | | Range sum, Point update | Fenwick Tree | | Range query, Range update | Segment Tree + Lazy | | Union, Find | DSU | | Min/Max with add/remove | Multiset / Heap | | Predecessor/Successor | Ordered Set / BST |
Input Schema
{
"type": "object",
"properties": {
"operations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"frequency": { "type": "string" },
"constraints": { "type": "string" }
}
}
},
"constraints": { "type": "object" },
"preferences": { "type": "array" }
},
"required": ["operations"]
}
Output Schema
{
"type": "object",
"properties": {
"success": { "type": "boolean" },
"recommended": { "type": "string" },
"complexities": { "type": "object" },
"alternatives": { "type": "array" },
"augmentations": { "type": "array" },
"reasoning": { "type": "string" }
},
"required": ["success", "recommended"]
}