Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, element, pointer):
- self.element=element
- self.pointer=pointer
- class LinkedQueue:
- def __init__(self):
- self.head=None
- self.tail=None
- self.size=0
- def is_empty(self):
- return self.size==0
- def first(self):
- if self.is_empty:
- print("Queue is empty.")
- else:
- return self.head.element
- def dequeue(self):
- if self.is_empty():
- print("Queue is empty")
- else:
- answer=self.head.element
- self.head=self.head.pointer
- self.size-=1
- if self.is_empty():
- self.tail=None
- return answer
- def enqueue(self,e):
- newest=Node(e,None)
- if self.is_empty():
- self.head=newest
- else:
- self.tail.pointer=newest
- self.tail=newest
- self.size+=1
- def getItem(self, index):
- p = self.head
- count = 0
- while count != index:
- p = p.pointer
- count += 1
- return p.element
- def setItem(self, index, element):
- p = self.head
- count = -1
- while count < index-1:
- p = p.next
- count += 1
- p.element = element
- #swap
- def swapItem(self, i, j):
- t = self.getItem(j)
- self.setItem(j, self.getItem(i))
- self.setItem(i, t)
- def quickSort(referance,left=0,right=q.size):
- global q
- #left=0
- #right=1
- #while referance.pointer!=None:
- # referance=referance.pointer
- # right+=1
- if left<right:
- i=left
- j=i+1
- start=q.getItem(i)
- while j<=right:
- while(j<=right and q.getItem(j)>=start):
- j+=1
- if j<=right:
- i+=1
- q.swapItem(i,j)
- j+=1
- q.swapItem(left,i)
- q.quickSort(q.getItem(left),left,i-1)
- q.quickSort(q.getItem(i+1), i+1, right)
- q=LinkedQueue()
- q.enqueue(3)
- q.enqueue(5)
- q.enqueue(1)
- print(q.head.element)
- #m=quickSort(q.head)
- #print(m.head)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement