Estoy practicando, pero no logro dar con la tecla...
El tema es ARBOLES.
He logrado recorrer el arbol, mostrandolo Izq Raiz Der, Raiz Izq Der y Izq Der Raiz, tambien la profundidad y buscar un Nodo en Particular...
No logro sumar los valores (hoja->dato) de los nodos! De manera recursiva!
Código
//Mostrar en orden (IRD) void mostrarOrden (treenode *hoja) { if (hoja!=NULL) { mostrarOrden(hoja->izq); mostrarOrden(hoja->der); } return; } //Mostrar en preOrden (RID) void mostrarPreorden(treenode *hoja) { if (hoja!=NULL) { mostrarPreorden(hoja->izq); mostrarPreorden(hoja->der); } return; } //mostrar en posOrden (IDR) void mostrarPosorden(treenode *hoja) { if (hoja!=NULL) { mostrarPosorden(hoja->izq); mostrarPosorden(hoja->der); } return; } //Calcula profundidad del arbol int profundidad(treenode *hoja) { if(hoja==NULL) return 0; else{ int profI=profundidad(hoja->izq); int profD=profundidad(hoja->der); if(profI>profD) return profI+1; else return profD+1; } return; } /* //Buscar nodo treenode *busqueda(treenode *hoja, int busq) { if(hoja==NULL) return 0; else if(busq==hoja->dato) return hoja; if(busq<hoja->dato) { return busqueda(hoja->izq,busq); }else{ return busqueda(hoja->der,busq); } return; } */ //Cuenta nodos impares int contarImp(treenode *hoja){ if (hoja!=NULL) { contarImp(hoja->izq); int cuenta=cuenta+(hoja->dato%2==0); contarImp(hoja->der); return cuenta; } }
Me podrian dar una mano?
Como siempre, mil gracias!!
Saludos para todos!