Skip to content

Instantly share code, notes, and snippets.

@zeyu2001
Created September 27, 2019 10:03
Show Gist options
  • Save zeyu2001/0e908d3d44ace315b96219246e08cf74 to your computer and use it in GitHub Desktop.
Save zeyu2001/0e908d3d44ace315b96219246e08cf74 to your computer and use it in GitHub Desktop.
Linked List OOP Implementation (without array)
class ListNode:
def __init__(self, DataValue):
self._DataValue = DataValue
self._NextNode = None
def set_DataValue(self, DataValue):
self._DataValue = DataValue
def set_NextNode(self, NextNode):
self._NextNode = NextNode
def get_DataValue(self):
return self._DataValue
def get_NextNode(self):
return self._NextNode
def __str__(self):
return str(self._DataValue)
class LinkedList:
def __init__(self):
self._Start = None
def add(self, DataValue):
def helper(CurNode, DataValue):
if CurNode == None:
new_node = ListNode(DataValue)
return new_node
elif CurNode.get_DataValue() < DataValue:
CurNode.set_NextNode(helper(CurNode.get_NextNode(), DataValue))
return CurNode
else:
new_node = ListNode(DataValue)
new_node.set_NextNode(CurNode)
return new_node
self._Start = helper(self._Start, DataValue)
def delete(self, DataValue):
def helper(CurNode, DataValue):
if CurNode == None:
return None # not found
elif CurNode.get_DataValue() == DataValue:
return CurNode.get_NextNode()
else:
CurNode.set_NextNode(helper(CurNode.get_NextNode(), DataValue))
return CurNode
self._Start = helper(self._Start, DataValue)
def search(self, DataValue):
def helper(CurNode, DataValue):
if CurNode == None:
return False
elif CurNode.get_DataValue() == DataValue:
return True
else:
return helper(CurNode.get_NextNode(), DataValue)
return helper(self._Start, DataValue)
def display(self):
print('Linked List: ', end = '')
CurNode = self._Start
while CurNode:
print(CurNode, end = ' ')
CurNode = CurNode.get_NextNode()
print()
def size(self):
count = 0
CurNode = self._Start
while CurNode:
count += 1
CurNode = CurNode.get_NextNode()
return count
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment