Stack

adalah struktur data yang mengikuti prinsip Last In, First Out (LIFO). Artinya, elemen terakhir yang dimasukkan ke dalam stack adalah elemen pertama yang diambil atau dikeluarkan dari stack. Operasi penambahan elemen pada stack disebut "push," dan operasi pengambilan elemen dari stack disebut "pop."

Stack dapat diimplementasikan menggunakan struktur data dasar seperti array atau linked list. Dalam konteks pemrograman, stack sering digunakan untuk melacak pemanggilan fungsi (call stack), ekspresi matematika (evaluasi ekspresi), manajemen memori, dan berbagai aplikasi lain yang memerlukan prinsip LIFO.

gambar binaryTree

Dalam contoh ini, elemen-elemen ditambahkan ke stack menggunakan operasi push, diambil menggunakan operasi pop, dan informasi tentang elemen teratas dapat dilihat menggunakan operasi top. Operasi lain seperti size dan isEmpty membantu dalam manajemen stack.

Pemahaman karakteristik ini membantu dalam merancang dan menggunakan stack secara efektif dalam pengembangan perangkat lunak.

Dalam konteks struktur data stack, kondisi stack merujuk pada situasi atau status terkini dari stack tersebut. Beberapa kondisi umum dalam stack melibatkan apakah stack kosong atau penuh, dan beberapa operasi yang dapat dilakukan pada stack.

Memahami kondisi stack penting untuk mengelola stack dengan efisien dan mencegah kesalahan seperti underflow (mengambil dari stack kosong) atau overflow (menambahkan ke stack penuh).

Penggunaan stack tidak terbatas pada daftar di atas; struktur data ini dapat menjadi alat yang sangat berguna dalam banyak konteks pemrograman dan algoritma.

Notasi infix dan postfix adalah dua cara berbeda untuk mengekspresikan ekspresi matematika.

Notasi Infix:

Definisi: Notasi infix adalah cara konvensional untuk mengekspresikan ekspresi matematika di mana operator ditempatkan di antara operand-operand.

Contoh: Ekspresi infix umumnya ditulis sebagai a + b * c, di mana operator + berada di antara operand a dan hasil perkalian b * c.

Sifat: Notasi infix mengikuti aturan konvensional matematika dan memerlukan penggunaan tanda kurung untuk menentukan urutan operasi yang benar.

Notasi Postfix:

Definisi: Notasi postfix (juga dikenal sebagai notasi posfiks atau notasi terbalik) adalah cara alternatif untuk mengekspresikan ekspresi matematika di mana operator ditempatkan setelah operand-operand.

Contoh: Ekspresi postfix yang setara dengan contoh infix di atas adalah a b c * +.

Sifat: Notasi postfix memiliki keunggulan bahwa tidak memerlukan penggunaan tanda kurung atau kejelasan urutan operasi, karena urutannya sudah diimplikasikan oleh posisi operator.

Notasi Postfix:

Proses konversi ekspresi dari notasi infix ke postfix melibatkan penggunaan stack untuk menyusun ekspresi baru. Beberapa langkah umumnya termasuk:

Membaca simbol demi simbol dari kiri ke kanan.

Jika simbol adalah operand, langsung tambahkan ke ekspresi postfix.

Jika simbol adalah operator, dorong ke stack dengan beberapa aturan prioritas operator

Jika simbol adalah tanda kurung, tambahkan atau keluarkan operator dari stack hingga tanda kurung seimbang.

Setelah semua simbol dibaca, keluarkan operator yang tersisa dari stack.

Contoh konversi infix ke postfix:

Infix: a + b * c

Postfix: a b c * +

gambar binaryTree

Transformasi dari notasi infix ke postfix melibatkan sejumlah aturan dan strategi. Berikut adalah aturan-aturan umum yang diterapkan selama proses transformasi infix ke postfix:

Proses transformasi infix ke postfix menggunakan stack untuk melacak operator dan operand. Aturan-aturan di atas membantu dalam menentukan urutan penempatan operator dan operand dalam ekspresi postfix sehingga dapat memberikan hasil yang benar.