elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Consulta de codigo de arbol binario en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Consulta de codigo de arbol binario en C  (Leído 1,739 veces)
Cristian AC

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Consulta de codigo de arbol binario en C
« en: 5 Mayo 2019, 05:44 am »

Hola, queria hacer una consulta sobre un codigo que use para responder un punto de mi examen.
Lo hice con un recorrido preorder y usando un wrapper.
Queria saber si el codigo funciona con ese IF largo asi, porque nunca me dijeron que lo podia usar asi, pero es lo unico que se me ocurrio en ese momento.
Gracias.

Me piden implementar una primitiva que recibe un arbol binario y devuelve la cantidad de nodos que son abuelos completos.
Abuelos completos: Quiere decir que tiene tanto hijo izquierdo como derecho, y ambos hijos tambien tienen hijos izquierdos y derechos.

typedef struct ab{
  struct ab* izq;
  struct ab* der;
  void* dato;
}ab_t;

size_t ab_abuelos(const ab_t* ab){

  if(!ab) return 0;
  size_t suma = 0;
  return _ab_abuelos(ab, suma);
}

size_t _ab_abuelos(const ab_t* ab, size_t suma){

  if(!ab) return 0;

  if(ab->izq->izq && ab->izq->der && ab->der->izq && ab->der->der) suma++;

  _ab_abuelos(ab->izq, suma);
  _ab_abuelos(ab->der, suma);

  return suma;
}


En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Consulta de codigo de arbol binario en C
« Respuesta #1 en: 5 Mayo 2019, 06:41 am »

Si ab->izq es null, ese if tendra problemas al hacer ab->izq->izq o ab->izq->der
Lo mismo con ab->der


En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Cristian AC

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Consulta de codigo de arbol binario en C
« Respuesta #2 en: 5 Mayo 2019, 17:49 pm »

Tenes razon, creo deberia agregarle otro caso base antes de llegar al if.
Algo tipo:

if(!ab->izq || !ab->der) return 0;

Gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Altura de arbol binario
Java
l337* 4 36,766 Último mensaje 5 Diciembre 2009, 13:08 pm
por imnohacker
Arbol binario Ejemplo
.NET (C#, VB.NET, ASP)
S1dD3xt35 0 7,627 Último mensaje 21 Abril 2010, 07:18 am
por S1dD3xt35
arbol binario
Programación C/C++
karmi 2 4,445 Último mensaje 14 Diciembre 2010, 22:08 pm
por ANTÓN RAMIREZ
Arbol binario
Java
pabelsbf 2 2,017 Último mensaje 14 Diciembre 2016, 01:20 am
por pabelsbf
Árbol binario
Java
padiuwu 1 1,904 Último mensaje 19 Marzo 2019, 15:00 pm
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines