Voisko joku "suomentaa" ja jelpata, kuinka c kielellä koodin pätkän tulisi mennä?
Tekstitiedostossa olevan sanan lukumäärätieto sijoitetaan binääripuun alkioon kentäksi, ja sen arvoa kasvatetaan, kun sama sana toistuu tekstissä.
Tekstitiedostossa olevan sanan lukumäärätieto sijoitetaan binääripuun alkioon kentäksi, ja sen arvoa kasvatetaan, kun sama sana toistuu tekstissä.
Vastaukset 2
Vanhimmat
on binääripuun alkio?
Olisko seuraavasta esimerkistä jotain apua
-- ESIMERKKI ALKAA ---
#include
struct node {
struct node *right, *left;
int value;
} mainnode = {
NULL, NULL, 0
};
struct node *getlink(struct node *main, char *str)
{
char ch;
char loop;
struct node **link = &main;
while((ch = *str++) != 0)
for (loop = 0; loop < 8; loop++, ch >>= 1)
if (*(link = (ch & 1) ? &(*link)->left : &(*link)->right) == NULL)
{
(*link = malloc(sizeof(struct node)))->value = 0;
(*link)->left = (*link)->right = NULL;
}
return *link;
}
void addstr(char *str)
{
printf("%s: %d\n", str, ++(getlink(&mainnode, str))->value);
}
int main(int argc, char **argv)
{
printf("%c", ch);
addstr("tämä");
addstr("on");
addstr("testi");
addstr("ohjelma");
addstr("on");
addstr("tämä");
}
--- ESIMERKKI LOPPUU ---
Alla jotain likkiä:
http://www.cs.hut.fi/Opinnot/T-106.250/materiaali/book/Puurakenteet.html
http://www.it.lut.fi/kurssit/99-00/010533000/lectures/node19.html