Penjelasan latihan Soal Struktur Data Pertemuan 4 (stack atau tumpukan)
- Stack termasuk (a) linear list atau (b) non linear list.jelaskan.
- Apa saja perlakuan yang dimungkinkan sehingga suatu stack dikatakan dalam keadaan hampa?
- Sebutkan 4(empat) operasi pada stack dan beri contohnya .
- Sebutkan dua kesalahan yang mungkin terjadi pada pengoperasian stack dan pada kondisi seperti apa kesalahan itu bisa terjadi.
- konversikan notasi infix A-B*(^D^(E*F/(G-H)) ke notasi positif.
Penjelasan
- stack(tumpukan) termasuk linear list/ bentuk khusus dari linear list yang pemasukan dalam penghapusan elemennya hanya dapat dilakukan pada satu posisi , yaitu posisi akhir dari list (top)
- Suatu stack dikatakan dalam kondisi hampa jika posisi akhir dari list(top) pada stack berada di posisi top= -1.
- 4(empat) operasi pada stack
Sebenarnya ada 6 operasi pada stack yaitu :
- push (menginput data pada stack)
Ex : void push (char d[20])
{
Tumpukan . top ++ ;
Strcpy (tumpukan . data [tumpuk . top],d);
Printf (“data berhasil dimasukkan”);
}
- pop (mengambil data pada stack )
Ex : void pop ()
{
printf (“data %s terambil “, tumpuk . data [tumpuk . top]);
tumpuk . top -- ;
}
- isFull (mengecek apakah stack penuh )
Ex : int isFull ()
{
if(tumpuk . top = = max _stack -1)
return 1;
else
return 0;
}
- isEmpty (mengecek apakah stack kosong )
Ex : int isEmpty ()
{
if(tumpuk . top = = -1)
return 1;
else
return 0;
}
- clear (membersihkan isi seluruh stack )
Ex : void clear ()
{
tumpuk . top = -1;
printf (“semua data terhapus “);
}
- print (mencetak seluruh isi stack)
Ex : void print ()
{
for (int i = tumpuk . top;i>=0 ; i - -)
printf(“%s\n”,tumpuk . data [i]);
}
- kesalahan yang mungkin terjadi pada pengoperasian stack dan pada kondisi seperti apa kesalahan itu bisa terjadi.
- apabila keadaan stack kosong dan kita akan mem-pop (menghapus data) maka akan terjadi kesalahan dan kemudian error(underflow).
- apabila keadaan stack penuh dan kita akan men-top (menambah data) maka akan terjadi kesalahan dan kemudian error (underflow).
5. konversikan notasi infix A-B*(^D^(E*F/(G-H)) ke notasi postfix
infix = A-B*(^D^(E*F/(G-H))
postfix = ABCDEFGH-/*^^*-