def test_remove_at(self):
     n1 = Node(1)
     ll = Linkedlist()
     self.assertEqual(ll.remove_at(0), None)
     ll.insert_at(0, n1)
     n2 = Node(2)
     ll.insert_at(10, n2)
     n3 = Node(3)
     ll.insert_at(1, n3)
     self.assertEqual(ll.remove_at(2), n3)
     self.assertEqual(ll.remove_at(0), n1)
Beispiel #2
0
class Queue:
  def __init__(self):
    self.storage = Linkedlist()

  def enqueue(self, item):
    self.storage.add_to_tail(item)

  def dequeue(self):
    return self.storage.remove_head()

  def is_empty(self):
    return self.storage.head == None
Beispiel #3
0
class Stack:

  def __init__(self):
    self.storage = Linkedlist()

  def push(self, item):
    self.storage.add_to_head(item)

  def pop(self):
    return self.storage.remove_head()

  def isEmpty(self):
    return self.storage.head == None
 def test_get_at(self):
     n = Node(1)
     ll = Linkedlist()
     ll.insert_at(0, n)
     self.assertEqual(ll.get_at(0), n)
     n = Node(2)
     ll.insert_at(10, n)
     self.assertEqual(ll.get_at(1), n)
Beispiel #5
0
def addbook():
    if request.method == "GET":
        return render_template('index.html')

    elif request.method == "POST":

        key = request.form.get('key', 'book')
        author = request.form.get('author', None)
        description = request.form.get('desc', None)
        price = request.form.get('price', 0)

        # get the hash value
        hash_value = hashFunction(key)

        # once you get the hash value you can store the value in the data bucket

        checkspace = dataBucket[hash_value]

        if checkspace is None:
            link[hash_value] = Linkedlist()
            dataBucket[hash_value] = link[hash_value]

            link[hash_value].insertData(author, description, price)

        else:
            exist_link = checkspace
            # find the last node (no need to travers, just call the insertData() method)
            temp = checkspace.head
            while temp is not None:
                temp = temp.next

            exist_link.insertData(author, description, price)

    return 'done'
 def test_iter(self):
     ll = Linkedlist()
     n1 = Node(1)
     ll.insert_at(0, n1)
     n2 = Node(2)
     ll.insert_at(10, n2)
     n3 = Node(3)
     ll.insert_at(1, n3)
     for node in ll:
         print node.data
Beispiel #7
0
from linkedlist import Linkedlist

my_list = [None] * 10

link1 = Linkedlist()

my_list.insert(0,link1)
link1.insertData('abcd','good book',342)
val = my_list[0]
val.insertData('pqrs','bad book',455)


print(my_list[0].findData())

link2 = Linkedlist()

my_list.insert(1,link2)
link2.insertData('gif','not good',111)
Beispiel #8
0
from linkedlist import Linkedlist


def kth_to_last(head, k):
    n = head
    runner = head
    tmp = head
    for i in xrange(k):
        runner = tmp.next
        tmp = tmp.next
    while runner:
        n = n.next
        runner = runner.next
    return n


l = Linkedlist()
head = l.make([1, 1, 3, 5, 17, 9, 1, 23])
print kth_to_last(head, 5).value
Beispiel #9
0
 def __init__(self):
   self.storage = Linkedlist()
 def test_clear(self):
     n = Node(1)
     ll = Linkedlist()
     ll.insert_first(n)
     ll.clear()
     self.assertEqual(ll.get_first(), None)
 def test_insert_first(self):
     n = Node(1)
     ll = Linkedlist()
     ll.insert_first(n)
     self.assertEqual(ll.head, n)
     self.assertEqual(ll.head.data, n.data)
 def test_remove_last(self):
     n = Node(1)
     ll = Linkedlist()
     self.assertEqual(ll.remove_last(), None)
     ll.insert_last(n)
     self.assertEqual(ll.remove_last(), n)
     self.assertEqual(ll.size, 0)
     n = Node(2)
     ll.insert_last(n)
     n = Node(3)
     ll.insert_last(n)
     self.assertEqual(ll.remove_last(), n)
 def test_get_last(self):
     n = Node(1)
     ll = Linkedlist()
     self.assertEqual(ll.get_last(), None)
     ll.insert_last(n)
     self.assertEqual(ll.get_last(), n)
 def test_remove_first(self):
     n = Node(1)
     ll = Linkedlist()
     ll.insert_first(n)
     self.assertEqual(ll.remove_first(), n)
     self.assertEqual(ll.get_first(), None)
 def setUp(self):
     self.ll = Linkedlist()
class TestLinkedlist(unittest.TestCase):

    def setUp(self):
        self.ll = Linkedlist()

    def test_add_first(self):
        self.ll.add_first(3)
        self.ll.add_first(4)
        self.ll.add_first(99)
        self.assertEqual(self.ll._expose(),'99-4-3')

    def test_add_at(self):
        self.ll.add_first(3)
        self.ll.add_first(4)
        self.ll.add_first(99)
        self.ll.add_at(1, 1)
        self.assertEqual(self.ll._expose(),'99-1-4-3')

    def test_add_at_empty(self):
        self.ll.add_at(3, 9999)
        self.assertEqual(self.ll._expose(), '3')

    def test_add_at_big_index(self):
        self.ll.add_first(3)
        self.ll.add_first(4)
        self.ll.add_at(99, 9999)
        self.assertEqual(self.ll._expose(), '4-3-99')

    def test_get_first(self):
        self.ll.add_first(3)
        self.assertEqual(self.ll.get_first(), 3)

    def test_get_at(self):
        self.ll.add_first(3)
        self.ll.add_first(4)
        self.ll.add_first(99)
        self.assertEqual(self.ll.get_at(1), 4)

    def test_get_at_empty(self):
        self.assertEqual(self.ll.get_at(99), None)

    def test_get_at_big_index(self):
        self.ll.add_first(3)
        self.assertEqual(self.ll.get_at(99), None)

    def test_remove_first(self):
        self.ll.add_first(3)
        self.ll.add_first(4)
        item = self.ll.remove_first()
        self.assertEqual(item, 4)
        self.assertEqual(self.ll._expose(), '3')

    def test_remove_at(self):
        self.ll.add_first(3)
        self.ll.add_first(4)
        self.ll.add_first(99)
        val = self.ll.remove_at(1)
        self.assertEqual(val, 4)
        self.assertEqual(self.ll._expose(), '99-3')

    def test_remove_at_empty(self):
        self.assertEqual(self.ll.remove_at(99), None)

    def test_remove_at_big_index(self):
        self.ll.add_first(3)
        self.assertEqual(self.ll.remove_at(99), None)