[英]Printing unbalanced binary tree
我故意在此代码中创建错误且不平衡的二叉树:
void createlist (tree*& node) {
node = new tree;
node->num = 1;
node->left = new tree;
node->left ->num = 2;
node->right = new tree;
node->right->num = 3;
node->left->left = new tree;
node->left->left->num = 4;
node->left->right = new tree;
node->left->right->num = 5;
node->right->left = new tree;
node->right->left->num = 6;
node->left->left->left = new tree;
node->left->left->left->num = 7;
}
然后,当我尝试使用普通函数对此进行打印时:
void print (tree* node) {
if (node!= 0) {
print (node->left);
cout << node->num << " ";
print (node->right);
}
}
它抛出一个错误:
Access violation reading location 0xcdcdcdd5.
在此位置:
print (node->left);
我只是从树开始,并不完全了解此错误的原因。 你能帮忙吗?
很难说没有你的源tree
类,但也许让一个new tree
不初始化left
和right
会员空指针? 在这种情况下,您的某些树将包含未初始化的指针数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.