1. 程式人生 > 實用技巧 >python-鏈佇列的實現

python-鏈佇列的實現

7 class Node(object):   
  8     def __init__(self,data):
  9         self.data = data
 10         self.next = None
 11                       
 12 class linkqueue(object):
 13     def __init__(self):
 14         self.front = None
 15         self.rear = None
 16         self.count = 0
 17     def isEmpty(self):
 
18 return self.count == 0 19 def clear(self): 20 self.front = self.rear = None 21 self.count = 0 22 def insert(self,item): 23 node = Node(item) 24 if self.isEmpty(): 25 self.front = self.rear = node
26 self.count += 1 27 elif self.count == 1: 28 self.front.next = node 29 self.rear = node 30 self.count += 1 31 else: 32 self.rear.next = node 33 self.rear = node 34 self.count += 1 35 def
length(self): 36 return self.count 37 def delitem(self): 38 if self.isEmpty(): 39 raise Exception("佇列為空") 40 elif self.count == 1: 41 self.rear.next = None 42 self.front = self.rear 43 self.rear = None 44 self.count -= 1 45 else: 46 tempnode = self.front 47 self.front = tempnode.next 48 self.count -= 1 49 def display(self): 50 if self.front == None: 51 print("None") 52 tempnode = self.front 53 while tempnode is not None: 54 print(tempnode.data,end = " ") 55 tempnode = tempnode.next 56 print() 57 58 if __name__ == "__main__": 59 linkqueue1 = linkqueue() 60 print(linkqueue1.length()) 61 linkqueue1.insert(1) 62 linkqueue1.insert(2) 63 linkqueue1.insert(3) 64 linkqueue1.insert(4) 65 linkqueue1.insert(5) 66 linkqueue1.insert(6) 67 print(linkqueue1.length()) 68 linkqueue1.display() 69 linkqueue1.delitem() 70 linkqueue1.display() 71 linkqueue1.clear() 72 linkqueue1.display() 73 74

執行結果

0
6
1 2 3 4 5 6
2 3 4 5 6
None
該程式碼中沒有關於佇列的查詢和元素值修改的方法,大家可以參照程式碼進行新增,程式碼邏輯也相對來說較為簡單