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)