Need help. What`s wrong?
Read words from textfile (only [a-zA_Z]. Puts them to the binary search
tree. If word already exists in tree has to add to counter in struct.
typedef struct puu_alkio
{
char sana[100];
int lukumaara;
struct puu_alkio *vasen, *oikea;
}puu_alkio, *puu_osoitin;
void add_to_tree(struct puu_alkio *solmu, struct puu_alkio *uusi);
void new_node(struct puu_alkio, FILE *);
int read();
void find(struct puu_alkio *, struct puu_alkio *)
int main(int argc, char *argv[])
{
int valinta, i, laskuri, n;
char merkkijono[30];
FILE *luku_tied, *kirj_tied_1,* kirj_tied_2;
read();
fclose(luku_tied);
}
return 0;
}
/* read from file */
int read( )
{
FILE *luku_tied;
int sana_lkm=0;
char sana[100];
struct puu_alkio;
luku_tied = fopen(argv[1], "r");
if(luku_tied == NULL)
{
perror("Tiedoston avaus ei onnistunut");
exit(1);
}
else
{
while (!feof(luku_tied));
{
sana_lkm=scanf(luku_tied, "%[^a-zA-Z]", sana);
if(sana_lkm)
new_node(struct puu_alkio *uusi, FILE *);
}
}
fclose(luku_tied);
}
int add_to_tree(puu_osoitin *juuri, char sana)
{
puu_osoitin t = *juuri;
puu_alkio *uusi;
if( (uusi = (puu_osoitin)malloc(sizeof(puu_alkio))) == NULL )
{
perror("Muistinvaraus ei onnistu");
return -1;
}
uusi->sana = sana;
uusi->lukumaara = 1;
uusi->vasen = NULL;
uusi->oikea = NULL;
if(!t) {
*juuri = uusi;
return 0;
}
else
find(struct puualkio *solmu, struct puualkio *uusi);
return 0;
}
void find(struct puu_alkio *solmu, struct puu_alkio *uusi)
{
struct puu_alkio *juuri, *uusi;
if (strcmp(solmu->sana, uusi->sana) > 0)
{
if (solmu->vasen == NULL)
solmu -> vasen = uusi;
else
add_to_tree(solmu->vasen, uusi);
}
else
{
if (solmu->oikea == NULL)
solmu -> oikea = uusi;
else
add_to_tree(solmu->oikea, uusi);
}
}
void new_node(struct puu_alkio *uusi, FILE *)
{
struct puualkio *juuri, *uusi;
if(uusi = (char* ) malloc(sizeof(struct)) == (char*)NULL)
{
perror ("muistinvaraus ei onnistu");
exit(1);
}
else
{
strcpy(uusi->sana, solmu->sana);
uusi->vasen = NULL;
uusi->oikea = NULL;
if (juuri == NULL)
juuri = uusi;
}
else
find(juuri, uusi);
}