class singlenode(object): def __init__(self,item): self.item=item self.next=None
1 class singlink(object): 2 def __init__(self): 3 self.head=None 4 5 def is_empty(self): 6 cur=self.head 7 if cur.item ==None: 8 return True 9 else: 10 return False 11 12 def length(self): 13 count=0 14 cur=self.head 15 while cur.next != None: 16 count+=1 17 cur=cur.next 18 return count 19 20 def head_add(self,item): 21 current= singlenode(item) 22 current.next=self.head 23 self.head=current 24 25 def append(self,item): 26 current=singlenode(item) 27 cur=self.head 28 while True: 29 if cur.next !=None: 30 cur=cur.next 31 else: 32 cur.next=current 33 break 34 35 def insert(self,pos,item): 36 current=singlenode(item) 37 cur=self.head 38 count=0 39 if pos <=0: 40 self.head_add(item) 41 else: 42 while True: 43 if pos>self.length()-1: 44 self.append(item) 45 break 46 47 elif count<pos: 48 count+=1 49 cur=cur.next 50 else: 51 current.next=cur.next 52 cur.next=current 53 break 54 55 def remove(self,pos): 56 #current=singlenode(item) 57 cur=self.head 58 count=0 59 pre=None 60 if pos == 0: 61 self.head=cur.next 62 else: 63 while count < pos: 64 pre=cur 65 cur=cur.next 66 count+=1 67 pre.next=cur.next 68 69 def travel(self): 70 71 cur=self.head 72 while cur != None: 73 print(cur.item) 74 cur=cur.next
1 if __name__=="__main__": 2 sl=singlink() 3 sl.head_add(1) 4 sl.append(2) 5 sl.append(3) 6 sl.length() 7 sl.travle() 8 sl.is_empty() 9 sl.insert(2,22) 10 sl.remove(2)