привет, ребята, поэтому я пытаюсь поменять местами два узла в дереве на максимальную кучу в зависимости от его приоритета, но я думаю, что это проблема с указателем, потому что он не меняет местами!
это то, что у меня есть
if (temp_2->left->priority > temp_2->priority){
struct btnode *t = temp_2;
temp_2=temp_2->left;
temp_2=t;
//change the index
int index_temp = temp_2->index;
temp_2->left->index = temp_2->index;
temp_2->index = index_temp;
}
, а это мой btnode
struct btnode {
int priority;
char *name;
int children;
int index;//starts from 1
struct btnode *left;
struct btnode *right;
};
и моя максимальная куча
struct max_heap {
int count;
struct btnode *root;
};
как мне поменять местами два узла в дереве?