Построение BCT-дерева из связанного списка - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь решить проблему Иосифа, используя деревья BCT (BST со счетчиком поддеревьев), и в качестве входных данных у меня есть односвязный список. Я сейчас изо всех сил пытаюсь получить свою функцию, которая преобразует связанный список в работу BCT.

node_t *createBST(node *head, node *tail, node_t *root){
   if(tail -> value >= head -> value){
       wynik *mid = half(head);
       node_t *M;
       M = malloc(sizeof(node_t));
       M -> key = mid -> actual -> value;
       M -> t = (tail -> value - head -> value + 1);
       M -> up = root;
       M -> left = createBST(head , mid -> prev, M);
       M -> right = createBST(mid -> actual -> next, tail, M);
       return M;
   }
   else{
       return NULL;
   }
}

Любая помощь или подсказки приветствуются :)

...