Процедура не возвращает значение - 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)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д