我试图实现bintree,但我在插入方法有问题。 如果我添加第一个元素,程序不会崩溃,但是当我引入2个或更多元素时,程序崩溃。分割故障bintree
这是代码
template <typename T>
void Arbol<T>:: insertar(T c){
if(laraiz==0)
{
laraiz=new celdaArbol;
laraiz->elemento=c;
laraiz->padre=laraiz->hizqu=laraiz->hder=0;
}
else {
celdaArbol *com=laraiz;
bool poner=false;
while(poner==false){
if(c>com->elemento){
if(com->hder==0){
com->hder= new celdaArbol;
com->hder->elemento=c;
com->hder->padre=com;
poner=true;
}
else{
com=com->hder;
}
}
else {
if(com->hizqu==0){
com->hizqu= new celdaArbol;
com->hizqu->elemento=c;
com->hizqu->padre=com;
poner=true;
}
else {
com=com->hizqu;
}
}
}
}
}
我认为这个问题是在else:
else{
com=com->hizqu; //com=com->hder;
}
因为我在节目中的部分输入几次不应该的调试器看到做。
我认为这将是非常有益的多用英语变量,不管你讲不同的语言键入的名字......这样一来有效地阻止你的人谁不说你的语言(西班牙语?)甚至可以查看代码。阅读c + +是非常困难的,如果这种困难被不同的语言所接受,它可以是非常......你知道...... – fritzone 2014-08-27 18:51:54
为什么所有其他的?使用退货并继续使代码更清洁。 – scohe001 2014-08-27 18:56:49
谢谢你fritzone。将来我会用英语写一切。 – dasavi 2014-08-28 09:27:36