Senin, 26 Oktober 2009

Stack - Lanjutan

Pembahasan lanjutan pada Stack kali ini yaitu mengenai pengertian-pengertian di dalam Stack yang masih belum dibahas dan sedikit mengulas mengenai Aplikasi pada Stack.

Jumlah elemen pada Stack yaitu dapat dinotasikan sebagai NOEL(S). NOEL juga dapat disamakan dengan TOP, karena TOP merupakan puncak dari sebuah elemen Stack, dan tentu mengambil jumlah keseluruhan dari Stack tersebut.

Aplikasi pada Stack sangat perlu untuk diketahui, karena menurut saya ini merupakan bagian inti terpenting dalam mempelajari Stack. Beberapa aplikasi dalam Stack adalah :

1. Penjodohan Tanda Kurung ( Matching Parantheses )
  • Amati Barisan elemen dari kiri ke kanan
  • Bila bertemu '(' maka '(' di PUSH ke dalam Stack
  • Bila bertemu ')' maka periksa Stack hampa atau tidak, apabila hampa berarti akan error. Dan sebaliknya apabila ada sepasang '(' dan ')' maka POP elemen keluar.


2. Notasi Postfix
  • Amati barisan dari kiri ke kanan
  • Jika '(' maka PUSH ke dalam stack
  • Jika ')', POP elemen dalam Stack sampai simbol '('. semua di POP merupakan output kecuali '(' tadi.
  • Jika simbol operand, langsung merupakan output.
  • Jika simbol operator, maka apabila elemen TOP stack dengan level >= maka POP sebagai output teruskan sampai '(' , sebaliknya jika elemen TOP <, operator yang diamati di PUSH ke dalam stack.
  • Bila ';' maka kita POP semua elemen dalam stack hingga hampa.


apabila dimisalkan ada notasi infix A+B maka :
Prefix akan menjadi +AB : operator , operand 1, operand 2.
Postfix akan menjadi AB+ : operand 1, opreand 2, operator.

Contoh untuk notasi postfix
Notasi Infix : ((A+B)*C/D+E^F)/G
Maka penyelesaiannya adalah sebagai berikut :
  1. ([AB+]*C/D+E^F)/G
  2. ([AB+]*C/D+[EF^])/G
  3. ([AB+C*]/D+[EF^])/G
  4. ([AB+C*D/]+[EF^])/G
  5. [AB+C*D/EF^+]/G
  6. AB+C*D/EF^+G/