first commit

This commit is contained in:
Jeena Paradies 2011-04-19 11:37:05 +02:00
commit 063194f8be
349 changed files with 36508 additions and 0 deletions

View file

@ -0,0 +1,48 @@
typedef struct Node *list;
struct Node {
int elem;
list next;
};
int main() {
printInt(length(fromTo(1,50)));
printInt(length2(fromTo(1,100)));
return 0;
}
int head (list xs) {
return xs -> elem;
}
list cons (int x, list xs) {
list n;
n = new Node;
n->elem = x;
n->next = xs;
return n;
}
int length (list xs) {
if (xs==(list)null)
return 0;
else
return 1 + length (xs->next);
}
list fromTo (int m, int n) {
if (m>n)
return (list)null;
else
return cons (m,fromTo (m+1,n));
}
int length2 (list xs) {
int res = 0;
while (xs != (list)null) {
res++;
xs = xs->next;
}
return res;
}

View file

@ -0,0 +1,2 @@
50
100

View file

@ -0,0 +1,78 @@
struct Node {
tree left;
int val;
tree right;
};
typedef struct Node *tree;
struct Header {
tree elems;
};
typedef struct Header *intset;
void insert (int x, intset s) {
s->elems = insertTree(x,s->elems);
return;
}
boolean isElem(int x, intset s) {
return isElemTree (x,s->elems);
}
tree insertTree(int x,tree t) {
if (t==(tree)null) {
tree n1;
n1 = new Node;
n1->left = (tree)null;
n1->val = x;
n1->right = (tree)null;
return n1;
}
else if (x < t->val)
t->left = insertTree (x,t->left);
else if (x > t->val)
t->right = insertTree (x,t->right);
return t;
}
boolean isElemTree(int x,tree t) {
if (t==(tree)null)
return false;
else if (x==t->val)
return true;
else if (x < t->val)
return isElemTree (x, t->left);
else
return isElemTree(x, t->right);
}
void printElem(int n, intset s) {
if (isElem(n,s))
printString("Elem!");
else
printString("Not elem!");
return;
}
int main () {
intset s;
s = new Header;
s->elems = (tree)null;
int x = 3;
int i = 0;
while (i<100) {
x = (x * 37) % 100;
i++;
insert(x, s);
}
printElem(23,s);
printElem(24,s);
printElem(25,s);
return 0;
}

View file

@ -0,0 +1,3 @@
Elem!
Not elem!
Not elem!