Installable skillMIT

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.

BY ECNU-ICALKUPDATED Oct 28, 2026
INTENDED FOR✳Claude Code>_Codex◈OpenClaw↗Cursor◎ChatGPT✦GeminiInstall in a listed agent.

instructions.md

---
id: "f3bfda3f-692a-4a5e-be23-8e6479f8b814"
name: implement-c-delist-doubly-linked-list-36a69a612315
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
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.