我创建了一个以水平顺序无递归方式打印BTree的函数。
我有一个问题就是找到我的错误..出现以下问题。
运行时检查失败#2 - 围绕变量' pq'被腐败了。 如果有人知道问题出在哪里,或者下次我怎么能找到它? 如果需要,我添加完整的项目。 enter link description here
void PrintTreeLevelOrder(bstree tree){ //The problem some where here.....
queue *pq = (queue*)malloc(sizeof(queue)); // is struct of : *front, *rear
node *current;// is struct of : root
create_queue(&pq);//create queue- items_num = 0,front = NULL,rear = NULL
if (tree.root == NULL) {
printf("Your Tree Is Empty:\n");
return;
}
current = tree.root;
enqueue(current, &pq);
printf("Your Tree Displayed As Queue:\n");
while ((size_of_queue(&pq) )!=0) {
current = pq->front;
printf("%d ", current->data);
if (current->left != NULL)
enqueue(current->left, &pq);
if (current->right)
enqueue(current->right, &pq);
dequeue(&pq, ¤t);
}
}
答案 0 :(得分:0)
首先,我想说你的算法是正确的,请阅读以下内容。
您的代码有多处错误需要处理
请关注这些要点,如果您想了解更多详情,请与我联系 我很乐意帮助