Skip to content

Instantly share code, notes, and snippets.

@rishkarajgi
Created May 27, 2015 11:50
Show Gist options
  • Select an option

  • Save rishkarajgi/b0db2ef902a8ffd8f812 to your computer and use it in GitHub Desktop.

Select an option

Save rishkarajgi/b0db2ef902a8ffd8f812 to your computer and use it in GitHub Desktop.

Revisions

  1. rishkarajgi created this gist May 27, 2015.
    55 changes: 55 additions & 0 deletions LinkedList.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,55 @@
    class Node(object):
    def __init__ (self,d,n = None):
    self.data = d
    self.next_node = n
    def get_next (self):
    return self.next_node
    def set_next (self,n):
    self.next_node = n
    def get_data (self):
    return self.data
    def set_data (self, d):
    self.data = d
    class LinkedList (object):
    def __init__ (self, r = None):
    self.root = r
    self.size = 0
    def get_size (self):
    return self.size
    def add (self,d):
    new_node = Node (d, self.root)
    self.root = new_node
    self.size += 1
    def remove (self, d):
    this_node = self.root
    prev_node = None
    while this_node:
    if this_node.get_data() == d:
    if prev_node:
    prev_node.set_data(this_node.get_next())
    else:
    self.root = this_node
    self.size -= 1
    return True # data removed
    else:
    prev_node = this_node
    this_node = this_node.get_next()
    return False # data not found

    def find (self, d):
    this_node = self.root
    while this_node:
    if this_node.get_data() == d:
    return d
    else:
    this_node = this_node.get_next()
    return None

    myList = LinkedList()
    myList.add(5)
    myList.add(8)
    myList.add(12)
    myList.remove(8)
    print(myList.remove(12))
    print(myList.find(5))