first commit
This commit is contained in:
commit
063194f8be
349 changed files with 36508 additions and 0 deletions
0
tester/testsuite/extensions/pointers/list.j
Normal file
0
tester/testsuite/extensions/pointers/list.j
Normal file
48
tester/testsuite/extensions/pointers/list.jl
Normal file
48
tester/testsuite/extensions/pointers/list.jl
Normal 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;
|
||||
}
|
2
tester/testsuite/extensions/pointers/list.output
Normal file
2
tester/testsuite/extensions/pointers/list.output
Normal file
|
@ -0,0 +1,2 @@
|
|||
50
|
||||
100
|
0
tester/testsuite/extensions/pointers/tree.j
Normal file
0
tester/testsuite/extensions/pointers/tree.j
Normal file
78
tester/testsuite/extensions/pointers/tree.jl
Normal file
78
tester/testsuite/extensions/pointers/tree.jl
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
|
3
tester/testsuite/extensions/pointers/tree.output
Normal file
3
tester/testsuite/extensions/pointers/tree.output
Normal file
|
@ -0,0 +1,3 @@
|
|||
Elem!
|
||||
Not elem!
|
||||
Not elem!
|
Loading…
Add table
Add a link
Reference in a new issue