Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # SINGLE LINKED LIST IMPLEMENTATION
- class Node:
- 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:
- def __init__(self, r=None):
- self.root = r
- self.size = 0
- def get_size(self):
- return self.size
- 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_next(this_node.get_next())
- else:
- self.root = this_node
- self.size -= 1
- return True
- else:
- prev_node = this_node
- this_node = this_node.get_next()
- return False
- def add(self, d):
- new_node = Node(d, self.root)
- self.root = new_node
- self.size += 1
- def find(self, d):
- this_node = self.root
- count = 0
- while this_node:
- if this_node.get_data() == d:
- count += 1
- return (str(d)+" found at "+str(count))
- else:
- this_node = this_node.get_next()
- return None
- ll = LinkedList()
- ll.add(5)
- ll.add(8)
- ll.add(12)
- print(ll.get_size())
- print(ll.remove(10))
- print(ll.get_size())
- print(ll.find(8))
Add Comment
Please, Sign In to add comment