Aplikasi Stack pada Struktur Data untuk Mengkonversikan Notasi INFIX Menjadi POSTFIX

Listing Program
Uses crt;
const
Noelstack = 80;
Makschar = 80;
Type
Eon = char;
stack = Record
Top : array[1...Noelstack] of Eon;
Noel : 0… Noelstack;
End;
Tipeindex = 0… makschar;
Typeeks = array[1... Noelstack] of char
Var

lagi : char;
{Bentuk-bentuk operasi stack}
Function isempty(Var s : stack):Boolean;
Begin
IsEmpty : = s. noel = 0
End;
Procedure create (var s. stack);
Begin
S. Noel : = 0;
End;
procedure buatkosong (Var s. stack);
Begin
S. Noel : = 0;
End ;
Procedure stack Error (tingkat Error: integer);
Begin
Case tingkat error of
1 : Writeln (isi stack sudah terlalu penuh);
2 : Writeln (isi stack kosong);
End
End;
Procedure push( var s : stack; tipebaru : Eon);
Begin
If s. Noel = Noel stack then
stack Error(1)
Else
Begin
s.Noel : = s. Noel+1 ;
s.Top[s.Noel] : = tipebaru
End
End;
Procedure pop(var s: stack ;
var nilaistack : Eon);
Begin
If s. Noel = 0 then
Stack error(2)
Else
Begin
Nilaistack : = s.top[s.Noel];
S.Noel : = s. Noel – 1;
End
End;
{proses konversi suatu ekspresi}
Function puncak stack(s : stack) : Eon;
Begin
Puncak stack : = s.top[s.noel]
End;
Function isidlmstack (operator: char); integer;
Begin
case operator of
‘(’ : isidlmstack : = 0;
‘+’,'-’ : isidlmstack : = 2;
‘*’,',’/’ : isidlmstack : = 4;
End
End;
Function stackyangdibaca (operator : char): integer
Begin
Case operator of
‘)’ : stackyangdibaca : =0;
‘+’,'-’ : stackyangdibaca : = 1;
‘*’,'/’ : stackyangdibaca : = 3;
‘(’ : stackyangdibaca : = 5;
End
End;
Procedure simpanchar(ch:char; Var ekspost : Tipeks;Var indekspost ; Tipeindex);
Begin
Indekspost : = indeks post+1;
ekspost [indekspost]: = ch;
End;
Procedure konversi infixkePostfix (eks dlm : Tipe eks;
pjg dlm : Tipe index;
var ekspost: Tipe Eks;
var panjang post : Tipe indeks);
Var
opstack : stack ;
indeksdlm, indeks post: Tipe index;
chdlm, operator, simpan : char ;
Begin
create (Opstack);
Push (Opstack, ‘(’);
eksdlm[pjg dlm +1] := ‘)’;
Indeks post: = 0;
For indeksdlm : = 1 to pjgdlm +1 Do
Begin
chdlm: = Eks Dlm [indeks dlm];
if ch dlm in ['A'....'Z'] then
simpan char (ch Dlm, Ekspost,indekspost)
Else
Begin
While isidlmstack(puncak stack (opstack))> stack yang dibaca (ch dlm) Do
begin
pop(opstack,operator);
simpanchar(operator,ekspost,indekspost)
end;
if chdlm = ‘)’ then
pop(opstack,simpan)
else
push(opstack,simpan)
end
panjang post := indekspost
end;
panjang post := indekspost
end;
produce konversi ekspresi;
var
indeks panjangdlm, panjang post :tipe index;
eksdlm,ekspot :tipe eks
begin
lagi :=’y';
While (upcase(lagi) =’x’ do
Begin
clsscr;
panjangdlm := 0
while not eoln do
begin
panjangdlm:=panjangdlm +1;
read(eksdlm[panjangdlm])
end;
readln ;
write(’ekspresi infix:’);
for index := 1 to panjangdlm do
write(eksdlm[index]);
writeln;
konversiinfixkePostfix(eksdlm, panjangdlm, ekspost, panjang post);
write (’dalam bentuk Postfix’)
for indeks := 1 to panjangpost do
write (ekspost [indeks]);
writeln;
writeln;
write (’ada data lagi.’); readln (lagi)
end;
End;
begin
konversi ekspresi;
end

0 Komentar Anda:

Posting Komentar

TAB 1
TAB 2
TAB 3
TAB 4
TAB 5
  
Zulfajarblog.blogspot.com
Merindukan Pemimpin "Pelayan"

Masih adakah hari ini pemimpin yang melayani ummat? Yang mendahulukan kewajiban sebelum menuntut hak? Oleh: Shalih Hasyim Konon, ada sebuah riwayat salafus shalih (pendahulu kita yang shalih), di dalamnya mengandung pelajaran moral yang masih tetap relevan untuk diangkat pada realitas sosial kehidupan kontemporer, sebagai upaya untuk memberikan pembelajaran bagi ummat Islam khususnya dan ummat manusia umumnya. Ini berkaitan dengan spirit service oriented (etos pelayanan) dari kisah Umar bin Khathab...... [Baca selengkapnya...]

Judul Link mu

Here is a caption with an image that is aligned to the left. This is an example of a Blogger post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind. This is an example of a Blogger... [Read more of this review]

Judul Link mu

Here is a caption with an image that is aligned to the left. This is an example of a Blogger post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind. This is an example of a Blogger... [Read more of this review]

Read More Posts From This Category