1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# SY 301 Fall 2016
# Lab 4: Linked Lists with Recursion
# YOUR NAME HERE
 
class Node:
    def __init__(self, data):
        self.data = data
        self.nextNode = None
 
class LinkedList:
    def __init__(self):
        """Creates a new LinkedList with nothing in it."""
        pass
 
    def add_front(self, item):
        """Inserts the given item at the beginning of the list."""
        pass
 
    def print_forward(self):
        """Prints the list items, one per line, in order."""
        pass
 
    def print_reverse(self):
        """Prints out the list items, one per line, in reverse order."""
        pass
 
    def contains(self, needle):
        """Returns True/False depending on whether the given
        needle is equal to any of the data items in the list."""
        pass
    
    def get(self, index):
        """Returns the data at the given index in the list."""
        pass
 
    def insert(self, index, item):
        """Inserts the given item before the one at the given index.
        For example, calling L.insert(2,4) on list [1,3,5] would
        result in the list changing to [1,3,4,5]."""
        pass
 
    def add_ordered(self, item):
        """Inserts the given item into the list so that the list
        stays in sorted order. Assume the list is already sorted
        to begin with."""
        pass
 
    def remove(self, index):
        """Removes (but does NOT return) the item at the given index."""
        pass
 
    def size(self):
        """Returns the number of items in the list."""
        pass