Oliver Becker, Mitarbeiter am Lehrstuhl Systemarchitektur im Institut für Informatik der HUB .
Date: Fri, 9 Mar 2001 11:56:02 +0100 (MET)
From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: pi3@informatik.hu-berlin.de
Subject: Klausurergebnisse


Hi

Die Klausurergebnisse stehen jetzt auch im Web, erreichbar ueber die
Praktikumsseite.


Und nur weil wir da so viele seltsame Kommentare bekommen haben, ist
unten mal eine uebersetzbare und lauffaehige Version des C-Programms
aus der sechsten Aufgabe. Andere korrekte Versionen waren natuerlich
moeglich.


Bye
 Sven


typedef struct _tree tree;
struct _tree {
    tree *left, *right;
    char *name;
};

void add(tree **root, char *name)
{
    while (*root)
	root = &(strcmp(name, (**root).name) < 0 ?
		 (*root)->left : (*root)->right);

    *root = (tree *) malloc(sizeof(**root));
    (*root)->name = (char *) malloc(strlen(name) + 1);
    strcpy((*root)->name, name);
    (*root)->left = (*root)->right = 0;
}

int dump(tree *t, int l, int r)
{
    if (!t) return !printf(" :");
    if (!l) return printf("%s%s", t->name, r ? "" : ":");
    return dump(t->left, l-1, 0) + dump(t->right, l-1, r);
}

int main(int ac, char **av)
{
    tree *p = 0;
    int l = 0;
    while (*++av) add(&p, *av);
    while (dump(p, l++, 1)) printf("\n");
}

--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de

© ob Tue, 20. Mar 2001, 13:25 .