Järjestyspihan algoritmi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 3.6.2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Järjestämispistealgoritmi  on tapa jäsentää matemaattisia ja/tai loogisia lausekkeita, jotka esitetään infix-merkinnällä . Voidaan käyttää tuottamaan käänteistä puolalaista notaatiota tai abstraktia syntaksipuutulostetta . Algoritmin ehdotti Edsger Dijkstra , ja hän nimesi sen "järjestelypiha-algoritmiksi", koska se muistuttaa rautatien järjestelypihan toimintaa .

Samoin kuin lausekkeiden arvojen laskeminen käänteisessä puolan merkinnässä, algoritmi toimii pinon avulla . Useimmiten ihmiset käyttävät matemaattisten lausekkeiden infix-merkintää, sen esimerkkejä ovat 2+4 ja 3+6*(3-2). Käänteiseen puolalaiseen merkintään muunnettaessa käytetään kahta merkkijonoa: tuloa ja lähtöä sekä pinoa sellaisten lauseiden tallentamiseen, joita ei ole vielä lisätty tulostusjonoon. Muunnettaessa algoritmi lukee 1 merkin ja suorittaa toimintoja tämän merkin mukaan.

Algoritmi

Jokainen tunnusnumero, funktio tai operaattori tulostetaan vain kerran, ja jokainen merkkifunktio, operaattori tai sulku lisätään ja poistetaan pinosta kerran. Vakio operaatioiden määrä vuoromerkkiä kohti, algoritmin O( n ) lineaarinen monimutkaisuus.

Linkit