Java Simple and Easy to understand solution, using linkedList, clean code with comments
PLEASE UPVOTE IF YOU LIKE THIS SOLUTION\n\n\nclass FrontMiddleBackQueue {\n    LinkedList<Integer> list;\n    \n    public FrontMiddleBackQueue() {\n        lis
**PLEASE UPVOTE IF YOU LIKE THIS SOLUTION**\n\n```\nclass FrontMiddleBackQueue {\n    LinkedList<Integer> list;\n    \n    public FrontMiddleBackQueue() {\n        list = new LinkedList();\n    }\n    \n    public void pushFront(int val) {\n        list.add(0, val);\n    }\n    \n    public void pushMiddle(int val) {\n        list.add(list.size() / 2, val);\n    }\n    \n    public void pushBack(int val) {\n        list.add(val);\n    }\n    \n    public int popFront() {\n        if(isEmpty()) return -1;\n       \n        return list.remove(0);\n    }\n    \n    public int popMiddle() {\n        if(isEmpty()) return -1;\n        \n        return list.remove(findMiddleIndex());\n    }\n    \n    public int popBack() {\n        if(isEmpty()) return -1;\n        \n        return list.remove(list.size() - 1);\n    }\n    \n    private boolean isEmpty(){\n        return list.isEmpty();\n    }\n    \n    private int findMiddleIndex(){\n        return (list.size() - 1) / 2;\n    }\n    \n\n}\n```
['Linked List', 'Java']