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