✅ Перевірена відповідь на це питання доступна нижче. Наші рішення, перевірені спільнотою, допомагають краще зрозуміти матеріал.
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; }
Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!