Skip to content

ethanzhanghello/linkedlist-deque-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🔗 LinkedListDeque – Java Implementation

📌 Table of Contents


🏷️ Project Title

LinkedListDeque – Java Implementation
A generic, doubly-linked list–based double-ended queue supporting constant-time operations at both ends.


📖 Project Description

This project is a custom Java implementation of a double-ended queue (deque) using a doubly linked list. It provides constant-time performance for adding and removing elements at either end, and supports generics for broad usability. Designed with clean modular structure and abstraction through interfaces, it’s ideal for learning and interviews.


💻 Technologies Used

  • Java 8+
  • Java Generics
  • Java Interfaces
  • Java Collection fundamentals

📋 Requirements

  • Java Development Kit (JDK) 8 or higher
  • Java-compatible IDE (e.g., IntelliJ IDEA, Eclipse)
  • Familiarity with compiling and running .java files

⚙️ Installation Instructions

git clone https://github.com/your-username/linkedlistdeque-java.git
cd linkedlistdeque-java

Open the project in your IDE and compile LinkedListDeque61B.java.
Ensure all files are in the same package or adjust package declarations.


🕹️ Usage Instructions

LinkedListDeque<String> deque = new LinkedListDeque<>();
deque.addFirst("CS");
deque.addLast("61B");
System.out.println(deque.removeFirst()); // CS
System.out.println(deque.removeLast());  // 61B

Try combining this with test cases to explore behavior and performance.


📚 Documentation

  • Deque61B.java – Interface defining the deque API
  • LinkedListDeque61B.java – Core doubly-linked deque implementation
  • Maximizer61B.java – Example utility class for testing max values in deques

JavaDocs are included inline to assist with method expectations and behaviors.


🖼️ Visuals

(Add a diagram showing the internal structure of the deque with sentinel nodes and example operations)


🛟 Support Information

For questions or bugs:

  • Open an issue via GitHub
  • Or contact via email: ezhang0606@gmail.com

🗺️ Project Roadmap

  • ✅ Implemented basic operations: addFirst, addLast, removeFirst, removeLast
  • ✅ Included iterative and recursive get methods
  • 🔄 Add iterator support
  • 🔜 Benchmarking and JUnit test suite

📈 Project Status

Completed
Fully functional and tested. May be expanded with iterator and benchmarking tools.


🤝 Contribution Guidelines

We welcome contributions! Please follow these steps:

  1. Fork this repository
  2. Create a feature or bugfix branch
  3. Write clear commit messages
  4. Submit a pull request with an explanation
  5. Include tests for new functionality where possible

Refer to the included JavaDocs for consistent method style and behavior.


📜 License Information

This project is licensed under the MIT License. See the LICENSE file for full details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages