c++中二叉树的问题

2025-05-07 23:41:19
推荐回答(2个)
回答1:

我们一起来分析一下你这个程序啊:
1说先声明了一个指针数组(指针在创建的时候,建议你接着就初始化为null,这可以说是一个必须养成的习惯)
你想实现的效果我猜是这样的:1
2 3
4 5 6 7
但是结果完全不是这样的,
T[1]=CreateBT(1,T[2],T[3]);这句话里边的T[2]、T[3]值是随机的:我调试时的值为:T[2]=0XCCCCCCCC
T[2]=CreateBT(2,T[4],T[5]);之后T[2]确确实实指向了一个元素,值为:T[2]=0x001040d8
再下一句差不多的
之后的就完全不对了:T[4]->data=4; 这个指针根本就没有指向某个对象,也就更谈不上给它的data赋值了。比如这样T[4]=new node; T[4]->data=4;
自己一步一步调试吧,发现问题解决问题!这条路很长,很艰辛,加油啊!!!

回答2:

T[1]到T[7]都没有初始化。可能指向了一些非法区域。T[4]->data时,会直接导致读内在错误。 另外你的设计也是有问题的。