Advertisement
Fenny_Theo

CSC1001_3

May 3rd, 2020
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. class Node:
  2. def __init__(self, element, pointer):
  3. self.element=element
  4. self.pointer=pointer
  5.  
  6.  
  7. class LinkedQueue:
  8. def __init__(self):
  9. self.head=None
  10. self.tail=None
  11. self.size=0
  12.  
  13. def is_empty(self):
  14. return self.size==0
  15.  
  16. def first(self):
  17. if self.is_empty:
  18. print("Queue is empty.")
  19. else:
  20. return self.head.element
  21.  
  22. def dequeue(self):
  23. if self.is_empty():
  24. print("Queue is empty")
  25. else:
  26. answer=self.head.element
  27. self.head=self.head.pointer
  28. self.size-=1
  29. if self.is_empty():
  30. self.tail=None
  31. return answer
  32.  
  33. def enqueue(self,e):
  34. newest=Node(e,None)
  35. if self.is_empty():
  36. self.head=newest
  37. else:
  38. self.tail.pointer=newest
  39. self.tail=newest
  40. self.size+=1
  41.  
  42. def getItem(self, index):
  43. p = self.head
  44. count = 0
  45. while count != index:
  46. p = p.pointer
  47. count += 1
  48. return p.element
  49.  
  50. def setItem(self, index, element):
  51. p = self.head
  52. count = -1
  53. while count < index-1:
  54. p = p.next
  55. count += 1
  56. p.element = element
  57.  
  58. #swap
  59. def swapItem(self, i, j):
  60. t = self.getItem(j)
  61. self.setItem(j, self.getItem(i))
  62. self.setItem(i, t)
  63.  
  64.  
  65.  
  66.  
  67. def quickSort(referance,left=0,right=q.size):
  68. global q
  69. #left=0
  70. #right=1
  71. #while referance.pointer!=None:
  72. # referance=referance.pointer
  73. # right+=1
  74. if left<right:
  75. i=left
  76. j=i+1
  77. start=q.getItem(i)
  78. while j<=right:
  79. while(j<=right and q.getItem(j)>=start):
  80. j+=1
  81. if j<=right:
  82. i+=1
  83. q.swapItem(i,j)
  84. j+=1
  85. q.swapItem(left,i)
  86. q.quickSort(q.getItem(left),left,i-1)
  87. q.quickSort(q.getItem(i+1), i+1, right)
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99. q=LinkedQueue()
  100. q.enqueue(3)
  101. q.enqueue(5)
  102. q.enqueue(1)
  103. print(q.head.element)
  104. #m=quickSort(q.head)
  105. #print(m.head)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement