1. 程式人生 > >有序列表 無序列表

有序列表 無序列表

cio 兩個 str ctu == node turn .get 有序列表

節點類

 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)

有序列表 無序列表