有序列表 无序列表

节点类

 1 # python
 2 # -*- coding: utf-8 -*-
 3 """
 4 __title__ = ''
 5 __author__ = 'wlc'
 6 __mtime__ = '2017/10/13'
 7 """
 8 class Node:
 9     def __init__(self, initData):
10         self.data = initData
11         self.next = None
12     #getData
13     def getData(self):
14         return self.data
15     #getNext
16     def getNext(self):
17         return self.next
18     #setData
19     def setData(self, data):
20         self.data = data
21     #setNext
22     def setNext(self, nextNode):
23         self.next = nextNode

无序列表

 1 # python
 2 # -*- coding: utf-8 -*-
 3 """
 4 __title__ = ''
 5 __author__ = 'wlc'
 6 __mtime__ = '2017/10/13'
 7 """
 8 from dataStructure.dS import pythonLinkedListNode
 9 
10 class UnorderedList:
11     def __init__(self):
12         self.head = None
13     #isEmpty
14     def isEmpty(self):
15         return self.head == None
16     #add
17     def add(self, item):
18         lnode = pythonLinkedListNode.Node(item)
19         lnode.setNext(self.head)
20         self.head = lnode
21     #size
22     def size(self):
23         current = self.head
24         count = 0
25         while current != None:
26             count = count + 1
27             current = current.getNext()
28         return count
29     #serch
30     def search(self, item):
31         current = self.head
32         flag = False
33         while current != None and (not flag):
34             if current.getData() == item:
35                 flag = True
36             else:
37                 current.getNext()
38         return flag
39     #remove
40     def remove(self, item):
41         #链表删除元素由于链表不可以回退 因此需要设置两个指针一个当前位置一个上一个位置
42         previous = None
43         current = self.head
44         found = False
45         while not found:
46             if current.getData() == item:
47                 found = True
48             else:
49                 previous = current
50                 current = current.getNext()
51         #precious如果没有变化就说明头结点的数据就会说要删除的元素
52         if previous == None:
53             self.head = current.getNext()
54         else:
55             previous.setNext(current.getNext())

有序列表

 1 # python
 2 # -*- coding: utf-8 -*-
 3 """
 4 __title__ = ''
 5 __author__ = 'wlc'
 6 __mtime__ = '2017/10/13'
 7 """
 8 from dataStructure.dS import pythonLinkedListNode
 9 
10 
11 class orderedList:
12     def __init__(self):
13         self.head = None
14 
15     # isEmpty
16     def isEmpty(self):
17         return self.head == None
18 
19     # size
20     def size(self):
21         current = self.head
22         count = 0
23         while current != None:
24             count = count + 1
25             current = current.getNext()
26         return count
27     #search
28     def search(self, item):
29         current = self.head
30         found = False
31         stop = False
32         while current != None and not found and not stop:
33             if current.getData() == item:
34                 found = True
35             else:
36                 if current.getData() > item:
37                     stop = True
38                 else:
39                     current = current.getNext()
40         return found
41     #add
42     def add(self, item):
43         current = self.head
44         previous = None
45         stop = False
46         while current != None and not stop:
47             if current.getData() > item:
48                 stop = True
49             else:
50                 previous = current
51                 current = current.getNext()
52         temp = pythonLinkedListNode.Node(item)
53         if previous == None:
54             temp.setNext(self.head)
55             self.head = temp
56         else:
57             temp.setNext(current)
58             previous.setNext(temp)
原文地址:https://www.cnblogs.com/wlc297984368/p/7662668.html