TGViewer
Библиотека С# С++ Библиотека С# С++ @cpluscsharp · 10.1K subscribers
Post #585 1.16K
🧠 Алгоритм, который превращает выражение в форму, где приоритеты операторов больше не нужны

Алгоритм сортировочной станции Дейкстры получил название в честь железнодорожной сортировочной станции - и работает очень похоже.

Он преобразует обычную инфиксную запись:

3 + 4 * 2

в постфиксную:

3 4 2 * +

После этого калькулятору уже не нужно каждый раз разбираться с приоритетами операторов и строить полноценное AST.

Как работает идея:

- один стек хранит операторы;
- второй поток формирует результат;
- операторы с более высоким приоритетом выходят раньше;
- скобки и ассоциативность обрабатываются по правилам стека.

В итоге выражение можно вычислять последовательно и без рекурсивного спуска.

Простой, старый и до сих пор очень красивый алгоритм для парсеров, калькуляторов и компиляторов.

#Algorithms #C #Programming #Compilers #ComputerScience
  • ❤ 3
More from @cpluscsharp
  1. Sep 14, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 1…
  2. Sep 13, 2026💡 C++: std::map<std::string, ...> не обязан создавать временный std::string при каждом по…
  3. Sep 13, 2026🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку Можно годами смотреть…
  4. Sep 9, 2026🖥 C++: объект уничтожен, а 16 МиБ всё ещё заняты std::weak_ptr может удерживать память да…
  5. Sep 2, 2026C++26 получил новый контейнер `std::hive` - что-то между `std::vector` и `std::list`. Глав…
  6. Aug 23, 2026Бесплатная книга, после которой компиляторы перестают казаться магией По ходу книги вы соб…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →