Advertisement
EaterSun

Tugas python heap tree

Apr 18th, 2025
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. import heapq
  2.  
  3. # Data nama dan NIM
  4. data_nim = {
  5. "Radhitya Kurnia Asmara": "J0403241105",
  6. "Rizky Ramadhan Agmer": "J0403241092",
  7. "Faza Izzaturafi": "J0403241102",
  8. "Banu Pandara": "J0403241097",
  9. "M. Rifal Dzulfikar": "J0403241164"
  10. }
  11.  
  12. # Urutkan berdasarkan nama
  13. sorted_names = sorted(data_nim.keys())
  14.  
  15. # Ambil 3 digit terakhir dari NIM masing-masing
  16. numbers = []
  17. for name in sorted_names:
  18. nim = data_nim[name]
  19. last3 = nim[-3:]
  20. numbers.extend([int(d) for d in last3])
  21.  
  22. print("Data awal (gabungan digit):", numbers)
  23.  
  24. # Buat Max Heap
  25. max_heap = [-x for x in numbers]
  26. heapq.heapify(max_heap)
  27.  
  28. print("Heap awal:", [-x for x in max_heap])
  29.  
  30. # Insert 4 data baru
  31. new_data = [3, 8, 6, 7]
  32. for val in new_data:
  33. heapq.heappush(max_heap, -val)
  34.  
  35. print("Setelah insert:", [-x for x in max_heap])
  36.  
  37. # Delete 2 bilangan ganjil terbesar
  38. deleted = []
  39. while len(deleted) < 2 and max_heap:
  40. val = -heapq.heappop(max_heap)
  41. if val % 2 == 1:
  42. deleted.append(val)
  43.  
  44. print("Data yang dihapus (ganjil terbesar):", deleted)
  45. print("Heap akhir:", [-x for x in max_heap])
  46.  
Tags: Python Heap
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement