как уничтожить кучу с помощью очереди adt? - PullRequest
0 голосов
/ 05 августа 2020

эй, ребята, я пытаюсь уничтожить дерево с помощью очереди, и это то, что у меня есть

void heap_destroy(struct max_heap *heap) {
  struct queue *new = queue_create();
  queue_enqueue( new,heap->root);
  struct btnode *h = heap->root;
  while (!queue_is_empty(new)){
    if (h->right != NULL){
      queue_enqueue(new,h->right);
    }
    if(h->left != NULL){
      queue_enqueue(new,h->left);
    }
    node_destroy(h);
    queue_dequeue(new);
    if(!queue_is_empty(new)){
    h = queue_front(new);
    }
  }
  free (heap);
  queue_destroy(new);
}

, но я все еще получаю ошибку утечки памяти, и я не уверен, почему кто-то может помочь?

...