classNode():def __init__(self,InitDate):
self.Date=InitDate
self.next=NonedefsetNext(self,newnext):
self.next=newnextdefsetDate(self,newDate):
self.Date=newDatedefgetNext(self):returnself.nextdefgetDate(self):returnself.DateclassLinkedList():def __init__(self):
self.head=NonedefisEmpty(self):return self.head==Nonedefadd(self,item):
temp=Node(item)
temp.setNext(self.head)
self.head=tempdefsize(self):
current=self.head
count=0while(current!=None):
count+=1current=current.getNext()returncountdefshow(self):
current=self.headwhile(current!=None):printcurrent.getDate(),
current=current.getNext()print " "
defsearch(self,item):
current=self.head
found=Falsewhile not found and (current !=None):if current.getDate()==item:
found=Trueelse:
current=current.getNext()printfounddefremove(self,item):
previous=None
current=self.head
found=Falsewhile not found and (current !=None):if current.getDate()==item:
found=Trueelse:
previous=current
current=current.getNext()if found==False:print "not {0}".format(item)elif current==self.head:
self.head=current.getNext()else:
previous.setNext(current.getNext())definsert(self,index,item):
previous=None
current=self.head
count=0
temp=Node(item)if index>self.size():print "out index"
elif index==0:
temp.setNext(current)
self.head=tempelse:whileindex:
index-=1previous=current
current=current.getNext()
previous.setNext(temp)
temp.setNext(current)if __name__=="__main__":
alist=LinkedList()for i in range(10):
alist.add(i)
alist.show()printalist.size()
alist.remove(5)
alist.show()
alist.insert(7,110)
alist.show()
alist.search(110)