как поменять местами два узла в дереве для максимальной кучи - PullRequest
0 голосов
/ 04 августа 2020

привет, ребята, поэтому я пытаюсь поменять местами два узла в дереве на максимальную кучу в зависимости от его приоритета, но я думаю, что это проблема с указателем, потому что он не меняет местами!

это то, что у меня есть

        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;
};

как мне поменять местами два узла в дереве?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...