logo

Crowdly

Для выражения (3*(6/(2+1)))-(4+(5*2)) написать последовательность создания узлов...

✅ The verified answer to this question is available below. Our community-reviewed solutions help you understand the material better.

Для выражения (3*(6/(2+1)))-(4+(5*2)) написать последовательность создания узлов дерева при работе функции

PNode MakeTree (char Expr[], int first, int last)

{ int MinPrt, i, k, prt; PNode Tree = new Node; // создать в памяти новую вершину

if ( first == last ) { // конечная вершина: число или

Tree->data = Expr[first]; // переменная

Tree->left = NULL; Tree->right = NULL;

return Tree;

}

MinPrt = 100;

for ( i = first; i <= last; i ++ )

{ prt = Priority ( Expr[i] );

if ( prt <= MinPrt )

{ // ищем последнюю операцию

MinPrt = prt; // с наименьшим приоритетом

k = i;

} }

Tree->data = Expr[k]; // внутренняя вершина (операция)

Tree->left = MakeTree (Expr,first,k-1); // рекурсивно строим

Tree->right = MakeTree (Expr,k+1,last); // поддеревья

return Tree; }

More questions like this

Want instant access to all verified answers on else.fcim.utm.md?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!