in

Cola de montón (o heapq) en Python

gfg 200x200 min

La estructura de datos del montón se utiliza principalmente para representar una cola de prioridad. En Python, está disponible usando «heapq”Módulo. La propiedad de esta estructura de datos en Python es que cada vez que el se extrae el elemento más pequeño del montón (montón mínimo). Siempre que se empujan o saltan elementos, estructura del montón en mantenida. El montón[0] element también devuelve el elemento más pequeño cada vez.

Veamos varias operaciones en el montón:

  • heapify (iterable)
  • : – Esta función se utiliza para convertir el iterable en un montón estructura de datos. es decir, en orden de pila.
  • heappush (heap, ele): – Esta función se usa para insertar el elemento mencionado en sus argumentos en el montón. los el orden se ajusta, así como se mantiene la estructura del montón.
  • heappop (montón): – Esta función se utiliza para eliminar y devolver el elemento más pequeño del montón. los el orden se ajusta, así como se mantiene la estructura del montón.

 

import heapq

 

li = [5, 7, 9, 1, 3]

 

heapq.heapify(li)

 

print ("The created heap is : ",end="")

print (list(li))

 

heapq.heappush(li,4)

 

print ("The modified heap after push is : ",end="")

print (list(li))

 

print ("The popped and smallest element is : ",end="")

print (heapq.heappop(li))

Producción :

The created heap is : [1, 3, 9, 7, 5]
The modified heap after push is : [1, 3, 4, 7, 5, 9]
The popped and smallest element is : 1
  • heappushpop (montón, ele)
  • :- Esta función combina el funcionamiento de las operaciones push y pop en una declaración, aumentando la eficiencia. El orden del montón se mantiene después de esta operación.
  • heapreplace (heap, ele): – Esta función también inserta y hace estallar el elemento en una declaración, pero es diferente de la función anterior. En esto, primero se abre el elemento, luego se empuja el elemento, es decir, se puede devolver el valor mayor que el valor empujado. heapreplace() devuelve el valor más pequeño originalmente en el montón independientemente del elemento empujado en lugar de heappushpop().

 

import heapq

 

li1 = [5, 7, 9, 4, 3]

 

li2 = [5, 7, 9, 4, 3]

 

heapq.heapify(li1)

heapq.heapify(li2)

 

print ("The popped item using heappushpop() is : ",end="")

print (heapq.heappushpop(li1, 2))

 

print ("The popped item using heapreplace() is : ",end="")

print (heapq.heapreplace(li2, 2))

Producción :

The popped item using heappushpop() is : 2
The popped item using heapreplace() is : 3
  • nlargest (k, iterable, key = divertido)
  • : – Esta función se utiliza para devuelve los k elementos más grandes del iterable especificado y satisfacen la clave si se menciona.
  • nsmallest (k, iterable, key = fun): – Esta función se usa para devuelve los k elementos más pequeños del iterable especificado y satisfacen la clave si se menciona.

 

import heapq

 

li1 = [6, 7, 9, 4, 3, 5, 8, 10, 1]

 

heapq.heapify(li1)

 

print("The 3 largest numbers in list are : ",end="")

print(heapq.nlargest(3, li1))

 

print("The 3 smallest numbers in list are : ",end="")

print(heapq.nsmallest(3, li1))

Producción :

The 3 largest numbers in list are : [10, 9, 8]
The 3 smallest numbers in list are : [1, 3, 4]

Este artículo es una contribución de Manjeet Singh. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contrib.geeksforgeeks.org o envíe su artículo por correo electrónico a contrib@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención geek! Fortalece tus cimientos con el Fundación de programación de Python Curso y aprende los conceptos básicos.

Para empezar, los preparativos de su entrevista Mejore sus conceptos de estructuras de datos con el Python DS Curso. Y para comenzar con su viaje de aprendizaje automático, únase al Aprendizaje automático – Curso de nivel básico

Deja una respuesta

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

apple touch icon@2

Cómo usar expresiones regulares (Regex) en Microsoft Excel tanto en la celda como en bucles

edit

Liderazgo vs gestión: diferencia y comparación