数据结构1-单项链表

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)

猜你喜欢

转载自www.cnblogs.com/Dai-py/p/10820055.html