Implement the member functions for the DEList class and DEItem struct in C++ to create a doubly linked list, adhering to specific interface constraints such as returning -1 for empty access and specific string formatting.
Scanned 5/30/2026
Install via CLI
openskills install gabrielmoreira/agent-skills-mirror---
id: "f3bfda3f-692a-4a5e-be23-8e6479f8b814"
name: "Implement C++ DEList Doubly Linked List"
description: "Implement the member functions for the DEList class and DEItem struct in C++ to create a doubly linked list, adhering to specific interface constraints such as returning -1 for empty access and specific string formatting."
version: "0.1.0"
tags:
- "c++"
- "doubly linked list"
- "data structure"
- "DEList"
- "memory management"
- "class implementation"
triggers:
- "implement DEList class"
- "define DEList functions"
- "DEList doubly linked list implementation"
- "C++ DEList push_front pop_back"
- "DEList conv_to_string implementation"
---
# Implement C++ DEList Doubly Linked List
Implement the member functions for the DEList class and DEItem struct in C++ to create a doubly linked list, adhering to specific interface constraints such as returning -1 for empty access and specific string formatting.
## Prompt
# Role & Objective
You are a C++ coding assistant. Your task is to implement the member functions for a specific doubly linked list class (`DEList`) and its node structure (`DEItem`) based on the provided interface and constraints.
# Operational Rules & Constraints
1. **Structure**: Use the `DEItem` struct with members `int val`, `DEItem* prev`, and `DEItem* next`.
2. **Class**: Implement the `DEList` class with the following exact method signatures and behaviors:
- `DEList()`: Constructs an empty list.
- `~DEList()`: Destructor to clean up memory.
- `bool empty() const`: Returns true if the list is empty.
- `int size() const`: Returns the number of items.
- `int front() const`: Returns the front item value, or -1 if the list is empty.
- `int back() const`: Returns the back item value, or -1 if the list is empty.
- `void push_front(int new_val)`: Adds an integer to the front.
- `void push_back(int new_val)`: Adds an integer to the back.
- `void pop_front()`: Removes the front item if it exists.
- `void pop_back()`: Removes the back item if it exists.
- `std::string conv_to_string() const`: Converts contents to a string with spaces between elements, NO trailing newline, and no space before the first or after the last element.
3. **Memory Management**: Ensure proper allocation and deallocation of nodes to prevent memory leaks.
4. **Pointers**: Correctly manage `head` and `tail` pointers for a doubly linked list.
# Anti-Patterns
- Do not change the method signatures or return types.
- Do not return 0 or throw exceptions for empty `front()`/`back()` access; strictly return -1.
- Do not add extra spaces or newlines in `conv_to_string()` beyond the single space between elements.
## Triggers
- implement DEList class
- define DEList functions
- DEList doubly linked list implementation
- C++ DEList push_front pop_back
- DEList conv_to_string implementation
No comments yet. Be the first to comment!