TUGAS STRUKTUR DATA (STACK ATAU TUMPUKAN)
1. Stack termasuk linear list atau non linear list? jelaskan !
JAWAB: Stack merupakan bentuk khusus dari linier list jadi bisa dipastikan bahwa Stack merupakan linear list. kenapa? karena pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari list(TOP)
2. Prinsip kerja stack adalah? jelaskan !!
JAWAB: sala satu konsep yang efektip untuk menyimpan dan mengambil data adalah ” terakhir masuk sebagai yang pertama keluar” (Last in First Out/LIFO). Dengan konsep ini pengambilan data akn berkebalikan urutannya dengan penyimpanan data.
Stack adalah sebuah kumpulan data di mana data yang di letakan di atas data yang lain. Dengn demikin stack adalah struktur data yang menggunakan konsep LIFO
, Dengan demikian, element terakhir yang di simpan di stack menjadi element yang pertama di ambil. dalam proses komputasi, untuk meletakan sebuah element pada bagian atas dari stack , maka kita melakukan push dan untuk memindahkan dari tempat yang atas tersebut, kita melakukan pop.
untuk menjelaskan pengertian di atas kita mengambil contoh sebagai berikut : misalnya kita mempunyai dua buah bola yang kita tumpuk, sehingga kotak kita letakan kotak di atas kotak lain, jika kemudian stack dua buah kotak tersebut kita tambah dengan kotak ketiga dan seterusnya, maka akan kita peroleh sebuah stack kotak yang terdiri dari N kotak.
3. Sebutkan empat operasi pada stack dan beri contohnya.
a. ISEMPTY
contohnya:
void insertDepan(int databaru){
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = baru;
if(isEmpty()==1){
head=baru;
head->next=head;
}
else {
bantu = head;
while(bantu->next!=head){
bantu=bantu->next;
}
baru->next = head;
head = baru;
bantu->next = head;
}
printf(”Data masuk\n“);
}
b.ISFULL
contohnya:
int Stack :: isFull()
{
if (top == max_stack -1 ) return 1;
else
return 0;
}
c.PUSH
contohnya:
void Stack :: push()
{
char insert;
int i ;
cout << “Much of data : “;
cin >> i;
if( i > max_stack -1) cout << “Out Of Range”; cout << endl;
for(int j = 0;j<=i-1;j++)
{
cout << “insert data : “;
cin >> insert;
top++;
data[top] = insert;
}
getche();
}
d.POP
contohnya:
void Stack :: pop()
{
cout << “Insert Index Data : “;
cin >> top;
cout << “Data Deleted : ” << data[top] << endl;
top–;
}
4. Dari keempat operasi tersebut,mana yang menghasilkan data yang bertipe Boolean?
JAWAB:ISEMPTY
5. Sebutkan 2 Kesalahan yang mungkin Terjadi Pada pengoperasian stack dan pada kondisi seperti apa kesalahan itu bisa terjadi?
JAWAB: Apabila keadaan stack kosong dan kita akan memPOP(menghapus data) maka Pertama
akan terjadi kesalahan dan kemudian eror(Under Flow).
Apabila keadaan stack penuh dan kita akan men-Top (menambah data) maka akan kedua
terjadi kesalahan dan kemudian eror(Over Flow).
6. Alihkan notasi infix A-B*C^D^(E*F) ke notasi postfix.
shofie 7:36 am pada 9 Mei 2011 Permalink |
Terima kasih sudah mengerjakan tugasnya..