在二进制树中按顺序插入插入节点的问题

时间:2018-02-06 18:33:53

标签: c data-structures binary-tree

我正在创建一个带二叉树的优先级队列。对于插入,我必须逐级插入新节点。然后我将在每次插入后对树进行堆排序。 下面的代码就是我所拥有的,但它似乎没有正确添加。 有人可以帮忙吗?

(New-object -comObject HNetCfg.FwPolicy2).Rules | ForEach-Object { $_.Name } >rules.txt

UPDATE 当我手动遍历树时,我发现NULL,它只是添加根。 插入代码:

Node * getNextInsertionPointer(Node * root){
    int h = height(root);
    int i;
    Node * leafLocation = NULL;
    for (i=1; i<=h; i++){
        leafLocation = traverseThrougTree(root, i);
    }
    return leafLocation;
}

Node * traverseThrougTree(Node * root, int level){
    if (root == NULL){
        return NULL;
    }
    if (level == 1){
        if (root->leftChild == NULL){
            return root -> leftChild;
        }else if (root -> rightChild == NULL){
            return root -> rightChild;
        }
    }else if (level > 1){
        traverseThrougTree(root->leftChild, level-1);
        traverseThrougTree(root->rightChild, level-1);
    }
}

0 个答案:

没有答案