Процедура не возвращает значение - C (СИ)
Формулировка задачи:
Проблема вот в чем,в одной процедуре создаётся дерево оптимального поиска,а в другой происходит добавление вершины в дерево.Делала по алгоритму с методички.
Проблема в том что в процедуру add_tree не возвращается полученное значение root ,оно становится процедуре create_tree снова пустым.
Пошагово тоже проверяла,результата никакого.Помогите разобраться.
ptree *NewNode(char k)
{
ptree *p = (ptree*)malloc(sizeof(ptree)); // ўл¤Ґ«Ёвм Ї*¬пвм
p->data = k; // ¤***лҐ
return p;
}
ptree * add_tree(ptree *root, char info)
{
ptree **p;
p=&root;
while((*p)!=NULL)
{
if ((*p)->data > info)
{
p=&(*p)->Left;
cout<<(*p)->data;
}
else
{
if ((*p)->data < info )
{
p=&(*p)->Right;
}
else
{
break;
}
}
}
if((*p)==NULL)
{
*p=NewNode(info);
//return *p;
}
return root=*p;
}
void create_tree(ptree *root,vertex *arr,int kolvo)
{
int max;
int i,j,index;
root= NULL;
int nomer ;
max = 0;
nomer = 0;
for(i=0;i<kolvo;i++)
{
arr[i].use=false;
}
for(i=0;i<kolvo;i++)
{
max = 0;
nomer = 0;
for(j=0;j<kolvo;j++)
{
if((arr[j].ves > max)&&(arr[j].use==false))
{
max=arr[j].ves;
nomer=j;
}
}
arr[nomer].use=true;
add_tree(root,arr[nomer].inf);//в этом месте значение снова становится ноль.проверяла пошагово
}
}Решение задачи: «Процедура не возвращает значение»
textual
Листинг программы
void create_tree(ptree *root,vertex *arr,int kolvo)