Учитывая бинарное дерево показаны ниже, определяет порядок , в котором узлы двоичного дерева , показанном ниже, при условии , посещаемые функция А (корень) вызываются. Предположим , что узлы дерева и указатели определяются как показано на рисунке. Предположим , что корень является указателем на узел , содержащий 60. Мой ответ на этот вопрос дается ниже. Является ли это правильно? Что я сделал не так?
60
/ \
30 90
/ \ /
5 38 77
\ / / \
8 32 62 88
struct treeNode{
int data;
struct treeNode *left, *right:
{
struct treeNode *tree_ptr;
void A(struct treeNode *node_ptr){
if (node_ptr != NULL){
printf(“%d ,”,node_ptr->data);
B(node_ptr->left);
B(node_ptr->right);
}
}
void B(struct treeNode *node_ptr){
if (node_ptr != NULL) {
A(node_ptr->left);
printf(“%d ,”,node_ptr->data);
A(node_ptr->right);
}
}
Ответ: В ничтожных А это говорит первые печатные node_ptr-> данные так 60 распечатан Тогда функция вызывает B (node_ptr-> левый) , то в B, A вызывается (node_ptr-> слева) , то при печати , что данные , которые 5 . И тогда A (node_ptr-> справа) вызывается вернуться к печатайте , что данные так 8 распечатаны. Теперь я не уверен , что делать дальше , но я получаю логически было бы целесообразно , чтобы напечатать 30 , но я не уверен , как PTR получает от 8 до 30. А потом , если вы будете продолжать в той же схеме 38 распечатана и 32 печатается. Для правого поддерева ... 90 77 62 88













