Anda di halaman 1dari 4

TUGAS 3

STRUKTUR DATA

Kerjakan tugas dibawah ini dengan tulis tangan kemudian hasilnya


di scan dan save ke file pdf kirim ke LMS session “Tugas 3”.

1. Buatlah algoritma untuk memasukan data melalui keyboard satu persatu dan mem Push
data tersebut ke Stack smapai Stack penuh tidak bias diisi lagi.
Jawaban:
Const
MAXSTACK=n
Type
stackArray=array[1...MAXSTACK] of tipedata
Stack: stackArray
top: Integer
masukan: Integer

Algoritma
If top = n
Output("Tidak dapat melakukan push")
Else
while (top < MAXSTACK):
Output("Masukan input: ")
masukan <- Input()
top <- top+1
Stack[top] <- masukan
EndFor
EndIf
2. Buatlah algoritma untuk mendelete isi antrian sampai antrian kosong.
const
CURRENT_QUEUE = n
Type
Q = ↑Simpul
Simpul = Record
<info: tipedata
next: Q
prev: Q>
Endrecord

pointerDepan = Q
pointerBelakang = Q
bantu = Q
data = tipedata
i = integer

Algoritma
if(pointerDepan != null )
while(CURRENT_QUEUE > 0)
data <- (pointerDepan)->info
bantu <- pointerDepan
pointerDepan <- bantu->next
hapus(bantu)
if(pointerDepan = NULL)
belakang <- NULL
EndIf
return data
endWhile
else
output("Queue sudah kosong")
EndIf
3. Buatlah pohon biner dengan ketentuan : “Jika nilai dari simpul yang akan disisipkan
lebih besar dari simpul parent, maka simpul tersebut ditempatkan sebagai subtree kanan.
Jika lebih kecil, maka simpul baru tersebut disimpan sebagai subtree kiri”, dari data
berikut : 60, 55, 70, 45, 50, 35, 65, 75, 80, 40

4. Buatlah pohon biner aritmetik dari pernyataan dibawah ini : A + B + C * D ^ (E – F) + G


/H

5. Buatlah algoritma untuk menghitung total nilai simpul pada sebuah tree menggunakan
penelusuran post order
Algoritma dalam C++ (menggunakan C++ karena menggunakan konsep Recursive, dimana
memanggil prosedur di dalam prosedur itu sendiri (Dynamic programming))

struct Node
{
int data;
struct Node* left, *right;
Node(int data)
{
this->data = data;
left = right = NULL;
}
};

void printPostorder(struct Node* node)


{
if (node == NULL)
return;

printPostorder(node->left);

printPostorder(node->right);

cout << node->data << " ";


}

Anda mungkin juga menyukai