Albero binario

SalvatCpo
Come mai la funzione mi restituisce 4 anziché 3?
Premetto che non ho studiato come gestire gli alberi binari in c++, è solo un esercizietto che mi sono inventato.
Ho studiato gli alberi solo come argomento teorico.
In pratica ho costruito un albero binario avente come radice l'elemento lista[3], il che è facilmente intuibile.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct record {
	int ls;	//link di concatenamento a sx (figlio sx)
	int ld;	//figlio dx
} record;
int cercaradice (record v[10]);
int main ()
{
	record lista[10];
	lista[3].ls=6;
	lista[3].ld=9;
	lista[4].ld=8;
	lista[6].ls=1;
	lista[6].ld=2;
	lista[9].ls=0;
	lista[9].ld=4;
	lista[0].ls=5;
	lista[0].ld=7;
	printf ("La radice è:  %d\n", cercaradice (lista));
	system ("PAUSE");
	return 0;
}
int cercaradice (record v[10])
{
	int i=0, g=0, k=0;
	int radice;
	while (i<10)
	{
		k=0;
		while (k<10)
		{
			if ((v[k].ls==i) || (v[k].ld==i))
			{
				g++;
			}
			k++;
		}
		if (g==0)
		{
			radice=i;
			return radice;
		}
		i++;
	}
}

Risposte
SalvatCpo
Ok, ho risolto da solo.
Avevo dimenticato di scrivere g=0 prima del ciclo while (k<10)...

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.