Anda di halaman 1dari 4

Nama: Satria Iqbal Pamungkas

NIM: 5302422091

Prodi: PTIK Rombel 3

Laporan Analisis Implementasi Source Code Data Struktur Heap

a. Source Code
b. Hasil Compiler

c. Analisis
1. Input Array
a. Deklarasi fungsi Heaps menggunakan parameter array dan integer

def heapify(arr, n, i):

b. Tetapkan elemen saat ini ( i ) sebagai yang terbesar.

largest = i
l = 2 * i + 1

r = 2 * i + 2

c. Indeks le/ Child diberikan oleh 2i + 1 dan right Child diberikan oleh 2i + 2.

d. Jika le/ Child lebih besar dari elemen pada indeks ke-i, setel le/ ChildIndex
sebagai yang terbesar.
e. Jika right Child lebih besar dari elemen terbesar, atur rightChildIndex sebagai
terbesar.
if l < n and arr[i] < arr[l]:
largest = l

if r < n and arr[largest] < arr[r]:


largest = r

if largest != i:
arr[i],arr[largest] = arr[largest],arr[i]
heapify(arr, n, largest)

2. Membuat Max Heap

a. Masukkan array dan new element ke parameter


def insert(array, newNum):
b. Size heap = ukuran array, jika size =0 maka akan membuat Node Baru
size = len(array)
if size == 0:
array.append(newNum)

c. Apabila size :dak sama dengan 0 atau Node sudah ada, masukkan newNode di akhir
atau simpul terakhir dari kiri ke kanan.
else:
array.append(newNum);
for i in range((size//2)-1, -1, -1):
heapify(array, size, i)

3. Menghapus Element dari Heap

a. Masukkan parameter array ke deletNode, dan inisiasi i = 0


def deleteNode(array, num):
size = len(array)
i = 0
b. Jika Node yang akan dihapus adalah leaf Node, maka bisa langsung hapus Node
for i in range(0, size):
if num == array[i]:
break

array[i], array[size-1] = array[size-1], array[i]

array.remove(num)
c. Apabila :dak, maka tukar Node yang akan dihapus denga leaf Node yang terakhir
untuk menghapus Node
for i in range((len(array)//2)-1, -1, -1):
heapify(array, len(array), i)

4. Data Array dan Perintah Hapus Node


arr = []

insert(arr, 1)
insert(arr, 8)
insert(arr, 7)
insert(arr, 5)
insert(arr, 3)

print ("Max-Heap array: " + str(arr))

deleteNode(arr, 8)
print("After deleting an element: " + str(arr))

Anda mungkin juga menyukai