Bölüm 7 · Simülasyon

Infix → Prefix Dönüştürücü

← Bölüm 7

Operatör yığını

Üst
Hazır.
Taranan
—
Ara çıktı
—
Sonuç
—
Adımları oluşturmak için ifadeyi dönüştürün.

Infix → Prefix Dönüştürücü

Önek (prefix, Leh) gösterimde operatör, işlenenlerinden önce yazılır: A + B * C ifadesi + A * B C olur. Böyle bir ifadeyi hesaplamak için parantez ya da öncelik kuralı gerekmez.

Kullanım

  • Tek harfli ya da sayısal işlenenler, + - * / % ^ ve parantezlerle bir ifade yazın (en fazla 22 simge), ardından Dönüştür düğmesine basın; Örnek hazır bir ifade yükler.
  • Sonraki / Önceki dönüşümde adım adım ilerler; Oynat adımları kendiliğinden oynatır; Sıfırla başa döner; İptal oynatmayı durdurur.

Algoritma

  1. İfadeyi ters çevirin ve ( ile ) karakterlerini yer değiştirin.
  2. Ters ifadeyi postfix algoritmasıyla tarayın: işlenenler çıktıya gider, operatörler yığında bekler. Öncelikler eşitse yalnızca ^ için pop edilir; diğer operatörler push edilir (ters çevirmeden sonra birleşme yönleri değişir).
  3. Prefix sonucu elde etmek için ara çıktıyı ters çevirin.

Öncelik: ^ > * / % > + -. Süre O(n).