Algoritmus seřaďovacího nádraží

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 3. června 2021; kontroly vyžadují 2 úpravy .

Algoritmus seřaďovacího nádraží  je způsob analýzy matematických a/nebo logických výrazů reprezentovaných infixovou notací . Lze jej použít k vytvoření reverzní polské notace nebo výstupu abstraktního stromu syntaxe . Algoritmus navrhl Edsger Dijkstra a pojmenoval jej „algoritmus seřaďovacího nádraží“, protože se podobá provozu železničního seřaďovacího nádraží .

Stejně jako při výpočtu hodnot výrazů v obráceném polském zápisu funguje algoritmus pomocí zásobníku . Nejčastěji lidé používají infixový zápis matematických výrazů, jeho příklady jsou 2+4 a 3+6*(3-2). Pro převod do reverzní polské notace se používají 2 řetězce: vstup a výstup a zásobník pro ukládání příkazů, které ještě nebyly přidány do výstupní fronty. Při převodu algoritmus čte 1 znak a provádí akce v závislosti na tomto znaku.

Algoritmus

Každé číslo tokenu, funkce nebo operátor se vytiskne pouze jednou a každá funkce tokenu, operátor nebo závorka bude přidána a odebrána ze zásobníku jednou. Konstantní počet operací na token, lineární složitost algoritmu O( n ).

Odkazy