Situs Belajar Kita

Rabu, 17 September 2008

STACK

STACK+%28+TUMPUKAN+%29%0D%0A%0D%0ALINIER+LIST%0D%0A%0D%0ASuatu+struktur+data+umum+yang+berisi+suatu+kumpulan+terurut+dari+elemen%3B+jumlah+elemen+di+dalam+list+dapat+berubah-ubah.%0D%0A%0D%0ALinier+list+A+yang+terdiri+dari+T+elemen+pada+waktu+t%2C+dinotasikan+sebagai+%3A+%0D%0A%0D%0A++++++++A+%3D+%5B+A1%2C+A2%2C+...%2C+AT%5D%0D%0A%09%0D%0AJika+T+%3D+0%2C+maka+A+disebut+%E2%80%9C+Empty+List+%E2%80%9D+atau+%0D%0A%E2%80%9C+Null+List+%E2%80%9D%0D%0A%0D%0A%0D%0ASuatu+elemen+dapat+dihilangkan%2Fdihapus+dari+sembarang+posisi+dalam+linier+list%2C+dan+dapat+pula+dimasukkan+elemen+baru+sebagai+anggota+list.%0D%0A%0D%0AContoh+%3A%0D%0A%0D%0A1.+File%2C+dengan+elemennya+%0D%0A++++berupa+record%0D%0A2.+Buku+telepon%0D%0A3.+Stack%0D%0A4.+Queue%0D%0A5.+Linear+link+list%0D%0A%0D%0ASTACK%0D%0A%0D%0A%09suatu+bentuk+khusus+dari+linier+list%2C+dengan+operasi+penyisipan+dan+penghapusan+di-batasi+hanya+pada+satu+sisinya%2C+yaitu+puncak+stack+%28TOP%29.%0D%0A%0D%0AElemen+teratas+dari+stack+dinotasikan+sebagai+TOP%28S%29.%0D%0AUntuk+stack+S%2C+dengan+%0D%0AS+%3D+%5BS1%2C+S2%2C+S3%2C+...%2C+ST%5D+%0D%0Amaka+TOP%28S%29+%3D+ST%0D%0A%0D%0A%0D%0AJumlah+elemen+di+dalam+stack+kita+notasikan+dengan+NOEL%28S%29.%0D%0ANOEL%28S%29+menghasilkan+nilai+integer.%0D%0AUtk+stack+S+%3D+%5BS1%2C+S2%2C+S3%2C+...%2C+ST%5D+%0D%0Amaka+NOEL+%28S%29+%3D+T.%0D%0A%0D%0AOperator+penyisipan+%28insertion%29+%3A+PUSH%0D%0AOperator+penghapusan+%28deletion%29+%3A+POP%0D%0AOperasi+stack+%3A+LIFO+%28Last+In+First+Out%29%2C+yaitu+%3A+yang+terakhir+masuk+yang+pertama+keluar.%0D%0A%0D%0A%0D%0AJika+ada+NOEL+elemen+didalam+stack%2C+maka+elemen+ke+NOEL+merupakan+elemen+puncak+%28TOP%29.%0D%0A%0D%0A%0D%0AStack+secara+umum+%3A%0D%0A%09%0D%0AS+%3D+%5B+S1%2C+S2%2C+...%2C+SNOEL+%5D%0D%0Abahwa+%3A+%0D%0ASI+berada+di+atas+elemen+SJ%2C+untuk+I+%3E+J%0D%0A++++++++++++++SI+akan+dikeluarkan+lebih+dulu+dari+elemen+di+bawahnya.%0D%0A%0D%0AContoh+stack+%3A+%0D%0ATumpukan+baki+dalam+cafetaria.%0D%0A%0D%0A%0D%0AEmpat+operasi+dasar+yang+berlaku+pada+stack+%3A%0D%0A%0D%0A1.+CREATE+%28stack%29%0D%0A2.+ISEMPTY%28stack%29%0D%0A3.+PUSH+%28elemen%2C+stack%29%0D%0A4.+POP+%28stack%29%0D%0A%0D%0A%0D%0A%0D%0A%0D%0ACREATE%0D%0A%0D%0Aadalah+operator+yang+menunjukkan+suatu+stack+kosong+dengan+nama+S.%0D%0A%0D%0AJadi+%3A+%0D%0A%0D%0ANOEL%28CREATE%28S%29%29+%3D+0%0D%0A%09%09+++++++TOP%28CREATE%28S%29%29+adalah+TIDAK+TERDEFINISI.%0D%0A%0D%0AISEMPTY%0D%0A%0D%0Aadalah+operator+yang+menentukan+apakah+stack+S+kosong.%0D%0AOperandnya+terdiri+dari+type+data+stack.+%0D%0AHasilnya+merupakan+type+data+Boolean.%0D%0A%0D%0AISEMPTY%28S%29+%3D+True.+Jika+S+hampa%2C+yakni+bila+NOEL%28S%29+%3D+0.%0D%0A%0D%0APUSH%0D%0A%0D%0Aadalah+operator+yang+menambahkan+elemen+E+pada+puncak+stack+S.+Hasilnya+merupakan+stack+yang+lebih+besar.+%0D%0APUSH%28E%2CS%29.+E+ditempatkan+sebagai+TOP%28S%29.%0D%0A%0D%0APOP%0D%0A%0D%0Aadalah+operator+yang+menghapus+sebuah+elemen+dari+puncak+stack+S.+Hasilnya+merupakan+stack+yang+lebih+kecil.%0D%0A%0D%0APOP%28S%29++mengurangi+++++NOEL%28S%29%0D%0APOP%28CREATE%28S%29%29+++%C2%AE++kondisi+error%0D%0APOP%28PUSH%28E%2CS%29%29+%3D+S%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0ADEKLARASI+STACK+DALAM+COBOL+DAN+PASCAL%0D%0A%0D%0ACOBOL%0D%0A01%09STACK-STRUCT+++%C2%AE+kombinasi+dari+%0D%0A+++++++++++++++array+dan+indikator+untuk+TOP%0D%0A%0902%09S+OCCURS+100+TIMES+PIC+9%285%29%0D%0A%0902%09TOP-PTR+++++++++++++++++++++++PIC+9%283%29%0D%0A%0D%0APASCAL%0D%0ATYPE+STACKSTRUCT+++%3D+%09RECORD%0D%0A%09%09%09%09+++++++++++++STACK+%3A+ARRAY+%0D%0A++++++++++++++++++++++++++++++++++++++++++++++%5B1..100%5D+of+integer%3B%0D%0A%09%09%09%09+++++++++++++TOPPTR+%3A+integer%3B%0D%0A%09%09%09%09+++++++++++++END%3B%0D%0AVAR++S+%3A++STACKSTRUCT%3B%0D%0A%0D%0ANOEL%28S%29+%3D+TOP-PTR%2C+ISEMPTY%28S%29+%3D+true%2C+bila+TOP-PTR+%3D+0.%0D%0A%0D%0AOPERASI+PUSH+%26+POP%0D%0A%0D%0APUSH%0D%0A%09IF+TOP-PTR+%3C+NOEL-MAX%0D%0A%09%09THEN+COMPUTE+TOP-PTR+%3D+TOP-PTR+%2B+1%0D%0A%09%09%09++MOVE+EON++TO+S%28TOP-PTR%29%0D%0A%09%09ELSE+Overflow+condition%0D%0APOP%0D%0A%09IF+TOP-PTR+%3E+0%0D%0A%09%09THEN+MOVE+S%28TOP-PTR%29+TO+EOFF%0D%0A%09%09%09++COMPUTE+TOP-PTR+%3D+TOP-PTR++-++1%0D%0A%09%09ELSE+Underflow+condition%0D%0A%0D%0AEON+%3A+elemen+yang+di+PUSH+ke+%0D%0A+++++++++++++dalam+S.%0D%0AEOFF+%3A+elemen+yang+di+POP+ke+%0D%0A+++++++++++++luar+S.%0D%0ANOEL-MAX+%3A+panjang+max+stack.%0D%0A%0D%0APUSH%0D%0A%0D%0A%09Procedure+PUSH+%28eon%3A+integer%29%3B%0D%0A%09Begin%0D%0A%09%09if+%28s.topptr+%3C+noelmax%29%0D%0A%09%09then%0D%0A%09%09%09Begin%0D%0A%09%09%09%09s.toppdr+%3A%3D+s.topptr+%2B+1%3B%0D%0Q%09%09%09%09s.stack+%5Bs.topptr%5D+%3A%3D+eon%3B%0D%0A%09%09%09End%3B%0D%0A%09%09else+Overflow-condition%0D%0A%09End%3B%0D%0A%0D%0APOP%0D%0A%0D%0A%09Procedure+POP+%28var+eoff+%3A+integer%29%3B%0D%0A%09Begin%0D%0A%09%09if+%28s.topptr+%3E+0%29%0D%0A%09%09then%0D%0A%09%09%09Begin%0D%0A%09%09%09%09eoff+%3A%3D+s.stack+%5Bs.topptr%5D%3B%0D%0A%09%09%09%09s.topptr+%3A%3D+s.topptr+-+1%3B%0D%0A%09%09%09End%3B%0D%0A%09%09else+Underflow+Condition%0D%0A%09End%3B%0D%0A%0D%0AAPLIKASI+STACK%0D%0A%0D%0A1.+%09Penjodohan+Tanda+Kurung%2FMatching+%0D%0A++++++Parantheses%0D%0A%09ALGORITMA%0D%0A%09a.%09Amati+barisan+elemen+dari+kiri+ke+kanan%0D%0A%09b.%09%C2%B7%09bila+bertemu+%E2%80%98%28%E2%80%98%2C+maka+%E2%80%98%28%E2%80%98+di+push+ke+dalam+%0D%0A+++++++++++++stack.%0D%0A%09%09%C2%B7%09bila+bertemu+%E2%80%98%29%E2%80%99%2C+maka+periksa+stack+hampa+%0D%0A+++++++++++++atau+tidak.%0D%0A%09%09%09bila+hampa+%C2%AE+ada+%E2%80%98%29%E2%80%99+dan+tidak+ada+%E2%80%98%28%E2%80%98+%28error%29%0D%0A%09%09%09bila+tidak+hampa+%C2%AE+ada+sepasang+%E2%80%98%28%E2%80%98+%26+%E2%80%98%29%E2%80%99+%26+POP+elemen+++++keluar%0D%0A%0D%0ANOTASI+POSTFIX%0D%0A%0D%0A%09+++ALGORITMA+%0D%0A%09+++Amati+barisan+dari+kiri+ke+kanan%0D%0A%09+++1.%09Jika+%E2%80%98%28%E2%80%98%2C+maka+PUSH+ke+dalam+stack.%0D%0A%09+++2.%09Jika+%E2%80%98%29%E2%80%99%2C+POP+elemen+dalam+stack+sampai+simbol+%E2%80%98%28%E2%80%98.+Semua+di+POP+merupakan+output+kecuali+%E2%80%98%28%E2%80%98+tadi.%0D%0A%09++++3.%09Jika+simbol+operand%2C+langsung+merupakan+%0D%0A+++++++++++++output.%09%0D%0A%094.%09Jika+simbol+operator%2C+maka+%3A%0D%0A%09%09Jika+elemen+TOP+stack+dengan+level+%3E%3D+maka+POP+sebagai+output+teruskan+sampai+%E2%80%98%28%E2%80%98.%0D%0A%09%09elemen+TOP+%3C%2C+operator+yang+diamati+di+PUSH+ke+dalam+stack.%0D%0A%095.%09Bila+%E2%80%98%3B%E2%80%99+kita+POP+semua+elemen+dalam+stack+%0D%0A++++++++++hingga+hampa.%0D%0A%0D%0A%0D%0A

Label:

0 Komentar:

Posting Komentar

Berlangganan Posting Komentar [Atom]

<< Beranda