这是我的代码:
#include <iostream>
using namespace std;
class Nodo{
public:
int valor;
Nodo *Padre;
Nodo *HijoIzquierdo;
Nodo *HijoDerecho;
Nodo(){
Padre=HijoIzquierdo=HijoDerecho=NULL;
valor=0;
}
};
class Arbol{
public:
Nodo *Raiz;
Arbol(){
Raiz=new Nodo();
Raiz->valor=5;
Raiz->HijoDerecho->Padre=Raiz->HijoIzquierdo->Padre=Raiz;
Raiz->HijoIzquierdo->valor=7;
Raiz->HijoIzquierdo->HijoIzquierdo->valor=18;
Raiz->HijoIzquierdo->HijoIzquierdo->Padre=Raiz->HijoIzquierdo;
Raiz->HijoDerecho->valor=15;
Raiz->HijoDerecho->HijoIzquierdo->valor=30;
Raiz->HijoDerecho->HijoIzquierdo->Padre=Raiz->HijoDerecho->HijoDerecho>Padre=Raiz->HijoDerecho;
Raiz->HijoDerecho->HijoDerecho->valor=8;
}
void Arbol::CantidadNodos(Nodo *actual=new Nodo(),int cantNodos){;
if(actual->HijoDerecho==NULL && actual->HijoIzquierdo==NULL){
cout<<"El arbol tiene: "<<cantNodos<<" nodos"<<endl;
return;
}
return Arbol::CantidadNodos(actual=actual->HijoIzquierdo,cantNodos++);
}
};
int main() {
int opcion;
Nodo *nodo=new Nodo();
Arbol *ar = new Arbol();
cout<<"Ingrese la opcion que desea realizar"<<endl;
cin>>opcion;
if(opcion==1){
ar->CantidadNodos(ar->Raiz,0);
}
}
当我编译它时,构建成功,但它没有运行,我尝试放置一些 couts 来查看问题出在哪里,问题出在以下行:
Arbol *ar = new Arbol();
当编译器到达该行时它崩溃,为什么?