Почему не работаєт??

программирование программы С++

подскажыте пожалуйста почему не работает

#include "stdafx.h"
#include<iostream>

struct item;
item *Insert(item *tree);
item *InOrder(item *tree);

struct item
{
int data;
item *left;
item *right;
item *(*f)(item *tree);
};
// item *(*f)(item *tree);

item *Insert(item *tree)
{
int s =1;
item *p;
if(tree == NULL)
{
p = new item;
p->data = s;
p->left = NULL;
p->right = NULL;
tree = p;
}
else
{
p = tree;
if(s < p->data)Insert(p->left); else
if(s > p->data)Insert(p->right);
}
return tree;
}

item *InOrder(item *tree)
{
if(tree->left != NULL)InOrder(tree->left);
if(tree->right != NULL)InOrder(tree->right);
return tree;
}
void main(void)
{
item *root = NULL;
root->f=Insert;
root=root->f(root);
root->f=InOrder;
root=root->f(root);
std::cout<<root->data;

}

Примечание:
root->f=Insert;

Примечание:
Вся загвоздка в том что описівается АТД из // item *(*f)(item *tree); зделать item *(*f)(item *tree);...
то всё работать будет но ето уже не АТД будет((
Ответы:
А на какую строку ругается?


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.