{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2bbc5d9c",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Comparing Alternative Data Structures and Doubly-Linked-Lists\n",
    "#### CS 66: Introduction to Computer Science II"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "773a6458",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## References for this lecture\n",
    "\n",
    "Problem Solving with Algorithms and Data Structures using Python\n",
    "\n",
    "\n",
    "Section 3.6 (Big O of list operations): [https://runestone.academy/ns/books/published/pythonds/AlgorithmAnalysis/Lists.html](https://runestone.academy/ns/books/published/pythonds/AlgorithmAnalysis/Lists.html)\n",
    "\n",
    "Section 4.10-4.23: [https://runestone.academy/ns/books/published/pythonds/BasicDS/toctree.html](https://runestone.academy/ns/books/published/pythonds/BasicDS/toctree.html)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "28c08478",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Implementing a `pop` method in our Linked List\n",
    "\n",
    "Now we're going to do something that requires us to keep track of a __trailing reference__ in our traversal - it keeps  track of the item _before_ the current one.\n",
    "\n",
    "We'll then be able to use the trailing reference to \"jump\" over the one we're removing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "12117711",
   "metadata": {},
   "outputs": [],
   "source": [
    "class UnorderedList:\n",
    "\n",
    "    def __init__(self):\n",
    "        self.head = None\n",
    "        \n",
    "    def isEmpty(self):\n",
    "        return self.head == None\n",
    "    \n",
    "    #this method is really a prepend - it puts the new node at the beginning\n",
    "    def add(self,item):\n",
    "        temp = Node(item)\n",
    "        temp.setNext(self.head)\n",
    "        self.head = temp\n",
    "            \n",
    "    def __repr__(self):\n",
    "        list_representation = \"\"\n",
    "        current = self.head #start with the Node at the head\n",
    "        while current: #this will keep going until current equals None\n",
    "            list_representation += str(current.getData())+\" -> \"\n",
    "            current = current.getNext() #move on to the next Node in the list\n",
    "        list_representation += \"None\" #the last one in the list points to None\n",
    "        return list_representation\n",
    "    \n",
    "    def __getitem__(self,index):\n",
    "        \n",
    "        if index < 0:\n",
    "            raise Exception(\"list index \"+str(index)+\" is out of range\")\n",
    "        \n",
    "        current = self.head\n",
    "        item_counter = 0\n",
    "        \n",
    "        while current and item_counter < index:\n",
    "            \n",
    "            current = current.getNext()\n",
    "            item_counter += 1\n",
    "            \n",
    "        if current == None:\n",
    "            raise Exception(\"list index \"+str(index)+\" is out of range\")\n",
    "            \n",
    "        return current.getData()\n",
    "    \n",
    "    def pop(self,index):\n",
    "        \n",
    "        if index < 0:\n",
    "            raise Exception(\"list index \"+str(index)+\" out of range\")\n",
    "        \n",
    "        \n",
    "        current = self.head\n",
    "        previous = None\n",
    "        item_counter = 0\n",
    "        \n",
    "        while current and item_counter < index:\n",
    "            previous = current\n",
    "            current = current.getNext()\n",
    "            item_counter += 1\n",
    "            \n",
    "        if current == None:\n",
    "            raise Exception(\"list index \"+str(index)+\" out of range\")\n",
    "            \n",
    "        #this if-else statement corrects an error in the video\n",
    "        #I didn't originally check for the edge case of popping\n",
    "        #the first item\n",
    "        if previous == None:\n",
    "            self.head = current.getNext()\n",
    "        else:\n",
    "            previous.setNext(current.getNext())\n",
    "            \n",
    "        return current.getData()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9b9b655f",
   "metadata": {},
   "source": [
    "## Group Activity Problem 1\n",
    "\n",
    "Implement a `remove` method for `UnorderedList` which allows you to remove items by their value (rather than their index, which is what `pop()` does.\n",
    "\n",
    "_Hint:_ You will need a trailing reference, just like with `pop`, but instead of counting to find the Node to remove, you will look at the data.\n",
    "\n",
    "_Hint 2:_ You can find a solution to this exercise in the book: [https://runestone.academy/ns/books/published/pythonds/BasicDS/ImplementinganUnorderedListLinkedLists.html](https://runestone.academy/ns/books/published/pythonds/BasicDS/ImplementinganUnorderedListLinkedLists.html)\n",
    "\n",
    "It should work with code like this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "21e6c077",
   "metadata": {},
   "outputs": [],
   "source": [
    "my_list = UnorderedList()\n",
    "\n",
    "my_list.add(31)\n",
    "my_list.add(77)\n",
    "my_list.add(17)\n",
    "my_list.add(93)\n",
    "my_list.add(26)\n",
    "my_list.add(54)\n",
    "print(my_list)\n",
    "\n",
    "my_list.remove(17)\n",
    "print(my_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f114b511",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Group Activity Problem 2\n",
    "\n",
    "Download [`UnorderedListLinkedList.py`](../../assets/code/UnorderedListLinkedList.py) and [`UnorderedListArray.py`](../../assets/code/UnorderedListArray.py)\n",
    "\n",
    "Both have many of the methods that are part of the UnorderedList ADT, but one uses a linked list, and the other uses an array (i.e., a Python list). \n",
    "\n",
    "In order to compare these approaches, we will need to understand the computational complexity of each of their methods. Fill out the table below (copy and paste it into a text file or spreadsheet). This will be a good thing to have handy in the future!\n",
    "\n",
    "Recall that the complexity of all of the list operations are given here: [https://runestone.academy/ns/books/published/pythonds/AlgorithmAnalysis/Lists.html](https://runestone.academy/ns/books/published/pythonds/AlgorithmAnalysis/Lists.html)\n",
    "\n",
    "<table>\n",
    "    <tr>\n",
    "    <th>Method</th>\n",
    "    <th>Linked List</th>\n",
    "    <th>Array</th>\n",
    "    </tr>\n",
    "    <tr>\n",
    "    <td><code>get</code>/<code>__getitem__</code></td>\n",
    "    <td></td>\n",
    "    <td></td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "    <td><code>add</code></td>\n",
    "    <td></td>\n",
    "    <td></td>\n",
    "    </tr>  \n",
    "    <tr>\n",
    "    <td><code>search</code>/<code>__contains__</code></td>\n",
    "    <td>$O(n)$</td>\n",
    "    <td>$O(n)$</td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "    <td><code>pop(n)</code></td>\n",
    "    <td></td>\n",
    "    <td></td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "    <td><code>pop</code> first item</td>\n",
    "    <td></td>\n",
    "    <td></td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "    <td><code>pop</code> last item</td>\n",
    "    <td></td>\n",
    "    <td></td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "    <td><code>remove</code></td>\n",
    "    <td></td>\n",
    "    <td></td>\n",
    "    </tr> \n",
    "    <tr>\n",
    "    <td><code>size</code></td>\n",
    "    <td></td>\n",
    "    <td></td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "    <td><code>isEmpty</code></td>\n",
    "    <td></td>\n",
    "    <td></td>\n",
    "    </tr> \n",
    "        \n",
    "      \n",
    "    \n",
    "    \n",
    "</table>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ccb18511",
   "metadata": {},
   "source": [
    "## Group Activity Problem 2\n",
    "\n",
    "The UnorderedList ADT is also supposed to have an `append` method (see [https://runestone.academy/ns/books/published/pythonds/BasicDS/TheUnorderedListAbstractDataType.html](https://runestone.academy/ns/books/published/pythonds/BasicDS/TheUnorderedListAbstractDataType.html) )\n",
    "\n",
    "We could make one easily in the array version by using the Python list's `append` method. What would the complexity of this be?\n",
    "\n",
    "It is possible to do this in the linked list by traversing the list all the way to the end of the list and then putting the new item there - this would take $O(n)$. \n",
    "\n",
    "\n",
    "It *might* be possible to do it in $O(1)$ time by adding a `self.tail` attribute that keeps track of the last item. Can you think of any problems that would arise from a strategy like this?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d4375095",
   "metadata": {},
   "outputs": [],
   "source": [
    "class UnorderedList:\n",
    "\n",
    "    def __init__(self):\n",
    "        self.head = None\n",
    "        self.tail = None\n",
    "    \n",
    "    def append(self,item):\n",
    "        if self.isEmpty():\n",
    "            temp = Node(item)\n",
    "            temp.setNext(self.head)\n",
    "            self.head = temp\n",
    "            self.tail = temp\n",
    "        else:\n",
    "            temp = Node(item)\n",
    "            self.tail.setNext(temp)\n",
    "            self.tail = temp"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5579671e",
   "metadata": {},
   "source": [
    "## Group Activity Problem 3\n",
    "\n",
    "Which other methods would need to change to make sure that `self.tail` always continues referring to the _last_ item in the list?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "140c9a3d",
   "metadata": {},
   "source": [
    "## Group Activity Problem 4\n",
    "\n",
    "Using `self.tail`, can we now implement a version of `pop` that would be able to remove the last item in $O(1)$ time? If yes, write down some pseudocode of how that would work. If no, why not - what else would we need?"
   ]
  },
  {
   "attachments": {
    "doublylinkedlist.png": {
     "image/png": "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WWbPjIWEzJ19QkWSJhIgARIgARIgARIgARJoGwEuJLetRJgeEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgZAS4kt6xAmBwSIAESIAESIAESIAESIAESIAESIAESIAESIAESaBsBLiS3rUSYHhIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGQEuJLesQJgcEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgbAS4kt61EmB4SIAESIAESIAESIAESIAESIAESIAESIAESIAESaBkBLiS3rECYHBIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGwEuJLetRJgeEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgZAS4kt6xAmBwSIAESIAESIAESIAESIAESIAESIAESIAESIAESaBsBLiS3rUSYHhIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGQEuJLesQJgcEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgbAS4kt61EmB4SIAESIAESIAESIAESIAESIAESIAESIAESIAESaBkBLiS3rECYHBIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGwEuJLetRJgeEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgZAS4kt6xAmBwSIAESIAESIAESIAESIAESIAESIAESIAESIAESaBsBLiS3rUSYHhIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGQEuJLesQJgcEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgbAS4kt61EmB4SIAESIAESIAESIAESIAESIAESIAESIAESIAESaBkBLiS3rECYHBIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGwEuJLetRJgeEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgZAS4kt6xAmBwSIAESIAESIAESIAESIAESIAESIAESIAESIAESaBsBLiS3rUSYHhIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGQEuJLesQJgcEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgbAS4kt61EmB4SIAESIAESIAESIAESIAESIAESIAESIAESIAESaBkBLiS3rECYHBIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGwEuJLetRJgeEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgZAS4kt6xAmBwSIAESIAESIAESIAESIAESIAESIAESIAESIAESaBsBLiS3rUSYHhIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGQEuJLesQJgcEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgbAS4kt61EmB4SIAESIAESIAESIAESIAESIAESIAESIAESIAESaBkBLiS3rECYHBIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGwEuJLetRJgeEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgZAS4kt6xAmBwSIAESIAESIAESIAESIAESIAESIAESIAESIAESaBsBLiS3rUSYHhIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGQEuJLesQJgcEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgbAS4kt61EmB4SIAESIAESIAESIAESIAESIAESIAESIAESIAESaBkBLiS3rECYHBIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGwEuJLetRJgeEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgZAS4kt6xAmBwSIAESIAESIAESIAESIAESIAESIAESIAESIAESaBsBLiS3rUSYHhIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGQEuJLesQJgcEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgbAS4kt61EmB4SIAESIAESIAESIAESIAESIAESIAESIAESIAESaBkBLiS3rECYHBIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGwEuJLetRJgeEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgZAS4kt6xAmBwSIAESIAESIAESIAESIAESIAESIAESIAESIAESaBsBLiS3rUSYHhIgARIgARIgARIgARIgARIgARIgARIgARIgARJoGYH/D3Fd32/flv5DAAAAAElFTkSuQmCC"
    }
   },
   "cell_type": "markdown",
   "id": "f57ee11a",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Doubly Linked List\n",
    "\n",
    "A __doubly linked list__ is like a linked list, except each node keeps track of the item both before _and_ after it in the list. \n",
    "\n",
    "We can also keep track of the _tail_ - the end of the list.\n",
    "\n",
    "![doublylinkedlist.png](attachment:doublylinkedlist.png)\n",
    "\n",
    "This gives us O(1) access to _both_ ends of the list - for adding or removing items from the ends!\n",
    "\n",
    "We could use this to implement a queue in which both `enqueue` and `dequeue` are O(1). Hooray!"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae296dcc",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Coding up a doubly linked list\n",
    "\n",
    "The code for a doubly linked list is similar to a linked list, except\n",
    "\n",
    "* You need to manage both the `prev` and `next` references for each node any time you add or remove an item\n",
    "* Many things have to be broken down into several cases for when there are 0 items, 1 item, or more items\n",
    "\n",
    "This can be a headache to implement - so I'm not going to make you add code to this. But, here's what the code looks like. _Caveat:_ I wrote this from scratch, and I hope I caught all the bugs..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a6eb8723",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here's the list: None <-> 5 <-> 4 <-> 1 <-> 2 <-> 3 <-> None\n",
      "Item at index 3: 2\n",
      "Item at index -1: 3\n",
      "Popping index 3: 2\n",
      "Popping index -1: 3\n",
      "Here's the resulting list: None <-> 5 <-> 4 <-> 1 <-> None\n",
      "Its size is 3\n"
     ]
    }
   ],
   "source": [
    "class DoubleNode:\n",
    "    def __init__(self,initdata):\n",
    "        self.__data = initdata\n",
    "        self.__next = None\n",
    "        self.__prev = None\n",
    "\n",
    "    def get_data(self):\n",
    "        return self.__data\n",
    "\n",
    "    def get_next(self):\n",
    "        return self.__next\n",
    "    \n",
    "    def get_prev(self):\n",
    "        return self.__prev\n",
    "\n",
    "    def set_data(self,newdata):\n",
    "        self.__data = newdata\n",
    "\n",
    "    def set_next(self,newnext):\n",
    "        self.__next = newnext\n",
    "        \n",
    "    def set_prev(self,newprev):\n",
    "        self.__prev = newprev\n",
    "\n",
    "class DoublyLinkedList:\n",
    "\n",
    "    def __init__(self):\n",
    "        \"\"\"a DoublyLinkedList is initially empty\"\"\"\n",
    "        self.__head = None\n",
    "        self.__tail = None\n",
    "        self.__length = 0\n",
    "        \n",
    "    def is_empty(self):\n",
    "        return self.__head == None\n",
    "    \n",
    "    def size(self):\n",
    "        return self.__length\n",
    "    \n",
    "    def append(self,item):\n",
    "        #create the new node\n",
    "        temp = DoubleNode(item)\n",
    "        \n",
    "        #case 1: the list is empty\n",
    "        if self.is_empty():\n",
    "            \n",
    "            self.__head = temp\n",
    "            self.__tail = temp\n",
    "            \n",
    "        #case 2: the list has 1 item \n",
    "        elif self.__length == 1:\n",
    "                \n",
    "            self.__tail = temp\n",
    "            self.__tail.set_prev(self.__head)\n",
    "            self.__head.set_next(self.__tail)\n",
    "            \n",
    "        #case 3: the list has 2 or more items\n",
    "        else:\n",
    "\n",
    "            self.__tail.set_next(temp)\n",
    "            temp.set_prev(self.__tail)\n",
    "            self.__tail = temp\n",
    "            \n",
    "        #update the length counter because we added an item\n",
    "        self.__length += 1\n",
    "    \n",
    "    def prepend(self,item):\n",
    "        #create the new node\n",
    "        temp = DoubleNode(item)\n",
    "        \n",
    "        #case 1: the list is empty\n",
    "        if self.is_empty():\n",
    "            \n",
    "            self.__head = temp\n",
    "            self.__tail = temp\n",
    "            \n",
    "        #case 2: the list has 1 item \n",
    "        elif self.__length == 1:\n",
    "                \n",
    "            self.__head = temp\n",
    "            self.__head.set_next(self.__tail)\n",
    "            self.__tail.set_prev(self.__head)\n",
    "            \n",
    "        #case 3: the list has 2 or more items\n",
    "        else:\n",
    "\n",
    "            self.__head.set_prev(temp)\n",
    "            temp.set_next(self.__head) \n",
    "            self.__head = temp \n",
    "            \n",
    "        #update the length counter because we added an item\n",
    "        self.__length += 1\n",
    "        \n",
    "    def __repr__(self):\n",
    "        list_representation = \"None <-> \"\n",
    "        current = self.__head #start with the Node at the head\n",
    "        while current: #this will keep going until current equals None\n",
    "            list_representation += str(current.get_data())+\" <-> \"\n",
    "            current = current.get_next() #move on to the next Node in the list\n",
    "        list_representation += \"None\" #the last one in the list points to None\n",
    "        return list_representation\n",
    "    \n",
    "    def __getitem__(self,index):\n",
    "        \n",
    "        #case 1: the index is out of range - error\n",
    "        if index >= self.__length or index < (-1)*self.__length:\n",
    "            raise Exception(\"list index \"+str(index)+\" out of range\")\n",
    "        \n",
    "        #case 2: positive index - count starting at the head\n",
    "        elif index >= 0:\n",
    "            current = self.__head\n",
    "            item_counter = 0\n",
    "            \n",
    "            while current and item_counter < index:\n",
    "                current = current.get_next()\n",
    "                item_counter += 1\n",
    "            \n",
    "        #case 3: negative index - count starting at the tail\n",
    "        else:\n",
    "            current = self.__tail\n",
    "            item_counter = -1\n",
    "            \n",
    "            while current and item_counter > index:\n",
    "                current = current.get_prev()\n",
    "                item_counter -= 1\n",
    "                    \n",
    "        return current.get_data()\n",
    "    \n",
    "    \n",
    "    def pop(self,index):\n",
    "        \n",
    "        #case 1: the index is out of range - error\n",
    "        if index >= self.__length or index < (-1)*self.__length:\n",
    "            raise Exception(\"list index \"+str(index)+\" out of range\")\n",
    "        \n",
    "        #case 2: the list is empty - error\n",
    "        elif self.__head == None:\n",
    "            raise Exception(\"You cannot pop from an empty list\")\n",
    "        \n",
    "        #case 3: there is only one item\n",
    "        elif self.__head == self.__tail and (index == 0 or index == -1):\n",
    "            self.__length -= 1\n",
    "            temp = self.__head\n",
    "            self.__head = None\n",
    "            self.__tail = None\n",
    "            return temp.get_data()\n",
    "        \n",
    "        #case 4: 2 or more items, popping the first item\n",
    "        elif index == 0 or index == self.__length*(-1):\n",
    "            self.__length -= 1\n",
    "            temp = self.__head\n",
    "            self.__head.get_next().set_prev(None)\n",
    "            self.__head = self.__head.get_next()\n",
    "            return temp.get_data()\n",
    "        \n",
    "        #case 5: 2 or more items, popping the last item\n",
    "        elif index == -1 or index == self.__length-1:\n",
    "            self.__length -= 1\n",
    "            temp = self.__tail\n",
    "            self.__tail.get_prev().set_next(None)\n",
    "            self.__tail = self.__tail.get_prev()\n",
    "            return temp.get_data()\n",
    "            \n",
    "        #case 6: 2 or more items, popping a non-end, counting from left\n",
    "        elif index > 0:\n",
    "            self.__length -= 1\n",
    "            \n",
    "            current = self.__head\n",
    "            trailing = None\n",
    "            item_counter = 0\n",
    "            \n",
    "            while current and item_counter < index:\n",
    "                trailing = current\n",
    "                current = current.get_next()\n",
    "                item_counter += 1\n",
    "\n",
    "            trailing.set_next(current.get_next())\n",
    "            current.get_next().set_prev(trailing)\n",
    "            \n",
    "            return current.get_data()\n",
    "        \n",
    "        #case 7: 2 or more items, popping a non-end, counting from right\n",
    "        elif index < 0:\n",
    "            self.__length -= 1\n",
    "            \n",
    "            current = self.__tail\n",
    "            trailing = None\n",
    "            item_counter = -1\n",
    "            \n",
    "            while current and item_counter > index:\n",
    "                trailing = current\n",
    "                current = current.get_prev()\n",
    "                item_counter -= 1\n",
    "                \n",
    "            trailing.set_prev(current.get_prev())\n",
    "            current.get_prev().set_next(trailing)\n",
    "   \n",
    "            return current.get_data()    \n",
    "        \n",
    "dll = DoublyLinkedList()\n",
    "dll.append(1)\n",
    "dll.append(2)\n",
    "dll.append(3)\n",
    "dll.prepend(4)\n",
    "dll.prepend(5)\n",
    "print(\"Here's the list:\",dll)\n",
    "print(\"Item at index 3:\",dll[3])\n",
    "print(\"Item at index -1:\",dll[-1])\n",
    "print(\"Popping index 3:\",dll.pop(3))\n",
    "print(\"Popping index -1:\",dll.pop(-1))\n",
    "print(\"Here's the resulting list:\",dll)\n",
    "print(\"Its size is\",dll.size())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "597cff98",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Implementing a Queue using a Doubly Linked List\n",
    "\n",
    "Recall: when we made our Queue ADT using a Python list as the underlying data structure, one of `enqueue` and `dequeue` had to be $O(n)$.\n",
    "\n",
    "We can now use a doubly linked list instead, and all the operations will be $O(1)$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "5c441d53",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Starting queue: Front|1,2,3,4,5|Back\n",
      "1\n",
      "2\n",
      "3\n",
      "Ending queue: Front|4,5|Back\n",
      "Size: 2\n"
     ]
    }
   ],
   "source": [
    "class Queue:\n",
    "    def __init__(self):\n",
    "        self.__dll = DoublyLinkedList()\n",
    "\n",
    "    def is_empty(self):\n",
    "        return self.__dll.is_empty()\n",
    "    \n",
    "    def enqueue(self,item):\n",
    "        self.__dll.append(item)\n",
    "\n",
    "    def dequeue(self):\n",
    "        return self.__dll.pop(0)\n",
    "\n",
    "    def size(self):\n",
    "        return self.__dll.size()\n",
    "    \n",
    "    def __repr__(self):\n",
    "        rval = \"Front|\"\n",
    "        for i in range(self.size()):\n",
    "            rval += str(self.__dll[i])+\",\"\n",
    "        rval = rval.strip(\",\")\n",
    "        rval += \"|Back\"\n",
    "        return rval\n",
    "        \n",
    "    \n",
    "q = Queue()\n",
    "q.enqueue(1)\n",
    "q.enqueue(2)\n",
    "q.enqueue(3)\n",
    "q.enqueue(4)\n",
    "q.enqueue(5)\n",
    "print(\"Starting queue:\",q)\n",
    "print( q.dequeue() )\n",
    "print( q.dequeue() )\n",
    "print( q.dequeue() )\n",
    "print(\"Ending queue:\",q)\n",
    "print(\"Size:\",q.size() )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94b33c34",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Group Activity Problem 5\n",
    "\n",
    "Chapter 4 of the book has implementations for two more Abstract Data Types that we haven't looked at yet:\n",
    "\n",
    "* Deque - a double-ended-queueu: [https://runestone.academy/ns/books/published/pythonds/BasicDS/TheDequeAbstractDataType.html](https://runestone.academy/ns/books/published/pythonds/BasicDS/TheDequeAbstractDataType.html)\n",
    "* OrderedList - a list that always keeps the items in a sorted order: [https://runestone.academy/ns/books/published/pythonds/BasicDS/TheOrderedListAbstractDataType.html](https://runestone.academy/ns/books/published/pythonds/BasicDS/TheOrderedListAbstractDataType.html)\n",
    "\n",
    "The book uses an array (i.e., a Python list) to implement the Deque and a linked list to implement the OrderedList. However, like their implementation of the Queue, these may not necessarily be the best choices.\n",
    "\n",
    "For each one, discuss, which would be the better choice to implement that ADT: array, linked list, or doubly-linked list. Give reasons to back up your choice. Time complexity of the different methods should be the main consideration, so start there, but you may be able to come up with some other reasons as well."
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Slideshow",
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
