# Data Structures

1. Stacks:
   - [API](../module4/src/main/java/com/hithomelabs/princeton1/module4/Stack.java)
   - [Sample client](../clients/src/main/java/com/hithomelabs/clients/ArrayStackClient.java)
   - Linear data structure
   - Can have various implementations
   - Should support (LIFO)
   - [Primitive implementation](../module4/src/main/java/com/hithomelabs/princeton1/module4/ArrayStack.java) (Using arrays of primitive data types)
   - [Other implementations](../module4/src/main/java/com/hithomelabs/princeton1/module4/LinkedStack.java) (Using linked lists)
2. Queues:
   - [API](../module4/src/main/java/com/hithomelabs/princeton1/module4/Queue.java)
   - [sample Client](../clients/src/main/java/com/hithomelabs/clients/LinkedQueueClient.java)
   - Linear data structure.
   - Can have various implementations.
   - Should support FIFO.
   - [Primitive implementation](../module4/src/main/java/com/hithomelabs/princeton1/module4/ArrayQueue.java) (Using array of primitive data types)
   - Other implementation ([using linked lists](../module4/src/main/java/com/hithomelabs/princeton1/module4/LinkedQueue.java))