logo

Crowdly

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

✅ Перевірена відповідь на це питання доступна нижче. Наші рішення, перевірені спільнотою, допомагають краще зрозуміти матеріал.

Для выражения (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; }

Більше питань подібних до цього

Хочете миттєвий доступ до всіх перевірених відповідей на else.fcim.utm.md?

Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!