class Node():
def __init__(self,elem):
self.elem=elem
self.next=None
class SingleLinkList():
def __init__(self,elem=None):
if elem != None:
node = Node(elem)
self.__head = node
else:
self.__head = None
def add(self,item):
node=Node(item)
node.next=self.__head
self.__head=node
def append(self,item):
node = Node(item)
preNode = self.__head
while(preNode.next!=None):
preNode = preNode.next
preNode.next = node
def insert(self,pos,item):
if pos <= 0:
node = Node(item)
node.next = self.__head
self.__head = node
elif pos > (self.length() - 1):
self.insert(item)
else:
node = Node(item)
preNode = self.__head
count = 0
while(count < (pos-1)):
preNode=preNode.next
count = count+1
node.next = preNode.next
preNode.next = node
def remove(self,item):
if not self.__head:
return
if not self.__head.next:
if self.__head.elem == item:
self.__head = None
else:
return
else:
if self.__head.elem == item:
self.__head = self.__head.next
else:
preNode = self.__head
curNode = self.__head.next
while curNode != None:
if curNode.elem == item:
preNode.next = curNode.next
preNode = curNode
curNode = curNode.next
def length(self):
count=0
curNode=self.__head
while curNode !=None:
count+=1
curNode=curNode.next
return count
def printNode(self):
if not self.__head:
return
else:
curNode = self.__head
while(curNode != None):
print(curNode.elem,end=" ")
curNode = curNode.next
print()
if __name__ == '__main__':
singleLinkList=SingleLinkList(20)
singleLinkList.add(1)
singleLinkList.append(100)
singleLinkList.insert(2,66)
singleLinkList.printNode()
singleLinkList.remove(100)
singleLinkList.printNode()
1 20 66 100
1 20 66