Implement c delist doubly linked list
Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8/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.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill implement-c-delist-doubly-linked-listAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.8 KB, 519 tokens by cl100k_base, as published. Nobody here has run it
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
- Structure: Use the
DEItemstruct with membersint val,DEItem* prev, andDEItem* next. - Class: Implement the
DEListclass 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.
- Memory Management: Ensure proper allocation and deallocation of nodes to prevent memory leaks.
- Pointers: Correctly manage
headandtailpointers 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
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.