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