PHP ОБРАТНАЯ ПОЛЬСКАЯ ЗАПИСЬ
Обратная польская запись (ОПЗ) - это способ записи арифметических выражений, при котором операторы следуют за своими операндами. В PHP ОПЗ может использоваться для вычисления выражений без использования скобок и с помощью стека. Основная идея заключается в том, что операнды помещаются в стек, а операторы выполняются, когда второй операнд переносится в стек.
В PHP для преобразования инфиксной записи выражения в ОПЗ можно использовать алгоритм Дейкстры. Рассмотрим пример кода, который преобразует строку с выражением в ОПЗ:
function toRPN($string) {
$operators = ['+' => 1, '-' => 1, '*' => 2, '/' => 2];
$tokens = preg_split('/\s+/', $string);
$output = [];
$stack = [];
foreach ($tokens as $token) {
if (is_numeric($token)) {
$output[] = $token;
} elseif (array_key_exists($token, $operators)) {
$priority = $operators[$token];
while (count($stack) > 0 && array_key_exists(end($stack), $operators) && $operators[end($stack)] >= $priority) {
$output[] = array_pop($stack);
}
$stack[] = $token;
} elseif ($token == '(') {
$stack[] = $token;
} elseif ($token == ')') {
while (end($stack) != '(') {
$output[] = array_pop($stack);
}
array_pop($stack);
}
}
while (count($stack) > 0) {
$output[] = array_pop($stack);
}
return implode(' ', $output);
}
В этом коде используется массив с приоритетами операторов, разделение строки на токены (числа и операторы) с помощью регулярного выражения, а также стек для хранения операндов и операторов. Функция возвращает строку в ОПЗ, разделенную пробелами.
Пример использования:
$string = '2 + (3 * 4 - 2) / 2';
$RPN = toRPN($string);
echo $RPN; // 2 3 4 * 2 - + 2 /
В этом примере выражение "2 + (3 * 4 - 2) / 2" было преобразовано в ОПЗ "2 3 4 * 2 - + 2 /".
Сделать обратную польскую запись на С++ Д328
Обратная польская запись онлайн
Обратная польская нотация s21
Реализация собственного протокола потока на PHP
// Алгоритмизация #1 // Интерпретатор обратной польской записи //
Обратная польская запись
Постфиксный калькулятор на Java. Обратная польская запись. Стековый калькулятор
Информатика. Структуры данных: Обратная польская нотация. Центр онлайн-обучения «Фоксфорд»