Aplikasi Stack pada Struktur Data untuk Mengkonversikan Notasi INFIX Menjadi POSTFIX

Jun 18, 2009 1 Comment by

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

Kata Kunci

stack struktur data, aplikasi stack, stack dalam pascal, stack pada pascal, program stack dengan pascal, struktur data stack, kolom pada array structure menunjukkan, cara buat program infix ke postfix pascal, stack dalam struktur data, APLIKASI Struktur data.

Related posts:

  1. Program untuk Mengurutkan Data dengan Metode RADIX SORT
  2. Pandapotan Struktur Data
  3. Dianita Struktur data
  4. Erika Struktur Data
  5. Tipe Data dan Operator
  6. Program Konversi Suhu
  7. Dani Struktur Data
  8. Pengertian Struktur Data
  9. Intan Struktur Data
  10. Natha Struktur Data
Data Structure, Pascal

About the author

Tulisan kiriman sahabat

One Response to “Aplikasi Stack pada Struktur Data untuk Mengkonversikan Notasi INFIX Menjadi POSTFIX”

  1. FITA says:

    penyelesaian program berikut dari infix ke postfix bagaimana
    A+B*(C-E/F)+(G-E)^H
    Jika A=8,B=4,C=3,E=6,F=2,G=7,H=5
    beserta bahasa pemrogramannya

Leave a Reply