Cola de montón (o heapq) en Python

La estructura de datos del montón se utiliza principalmente para representar una cola de prioridad . En Python, está disponible usando el módulo “ heapq ”. La propiedad de esta estructura de datos en Python es que cada vez que se extrae el elemento de montón más pequeño (min heap) . Cada vez que se empujan o extraen elementos, se mantiene la estructura del montón . El elemento heap[0] también devuelve el elemento más pequeño cada vez. Veamos varias operaciones en el montón:

  • heapify (iterable) : – Esta función se usa para convertir el iterable en una estructura de datos de montón. es decir, en orden de montón.
  • heappush(heap, ele) :- Esta función se usa para insertar el elemento mencionado en sus argumentos en el montón. El orden se ajusta , por lo que se mantiene la estructura del montón .
  • heappop (montón) : – Esta función se usa para eliminar y devolver el elemento más pequeño del montón. El orden se ajusta , por lo que se mantiene la estructura del montón .

Python3

# Python code to demonstrate working of 
# heapify(), heappush() and heappop()
  
# importing "heapq" to implement heap queue
import heapq
  
# initializing list
li = [5, 7, 9, 1, 3]
  
# using heapify to convert list into heap
heapq.heapify(li)
  
# printing created heap
print ("The created heap is : ",end="")
print (list(li))
  
# using heappush() to push elements into heap
# pushes 4
heapq.heappush(li,4)
  
# printing modified heap
print ("The modified heap after push is : ",end="")
print (list(li))
  
# using heappop() to pop smallest element
print ("The popped and smallest element is : ",end="")
print (heapq.heappop(li))

Producción :

Python3

# Python code to demonstrate working of 
# heappushpop() and heapreplce()
  
# importing "heapq" to implement heap queue
import heapq
  
# initializing list 1
li1 = [5, 1, 9, 4, 3]
  
# initializing list 2
li2 = [5, 7, 9, 4, 3]
  
# using heapify() to convert list into heap
heapq.heapify(li1)
heapq.heapify(li2)
  
# using heappushpop() to push and pop items simultaneously
# pops 2
print ("The popped item using heappushpop() is : ",end="")
print (heapq.heappushpop(li1, 2))
  
# using heapreplace() to push and pop items simultaneously
# pops 3
print ("The popped item using heapreplace() is : ",end="")
print (heapq.heapreplace(li2, 2))

Python3

# Python code to demonstrate working of 
# nlargest() and nsmallest()
  
# importing "heapq" to implement heap queue
import heapq
  
# initializing list 
li1 = [6, 7, 9, 4, 3, 5, 8, 10, 1]
  
# using heapify() to convert list into heap
heapq.heapify(li1)
  
# using nlargest to print 3 largest numbers
# prints 10, 9 and 8
print("The 3 largest numbers in list are : ",end="")
print(heapq.nlargest(3, li1))
  
# using nsmallest to print 3 smallest numbers
# prints 1, 3 and 4
print("The 3 smallest numbers in list are : ",end="")
print(heapq.nsmallest(3, li1))

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *