source: src/tests/avltree/avl1.c@ a6dd5b0

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors ctor deferred_resn demangler enum forall-pointer-decay jacob/cs343-translation jenkins-sandbox memory new-ast new-ast-unique-expr new-env no_list persistent-indexer pthread-emulation qualifiedEnum resolv-new with_gc
Last change on this file since a6dd5b0 was 6e4b913, checked in by Peter A. Buhr <pabuhr@…>, 9 years ago

allow 32-bit compilation of cfa-cpp, and 32-bit compilation of CFA programs (including CFA libraries)

  • Property mode set to 100644
File size: 1.1 KB
Line 
1#include "avl.h"
2// #include "cwrap.h"
3
4forall(otype K | Comparable(K), otype V)
5void ?{}(tree(K, V) *t, K key, V value){
6 (&t->key) { key };
7 (&t->value) { value };
8 t->parent = NULL;
9 t->left = NULL;
10 t->right = NULL;
11 t->balance = 0;
12}
13
14forall(otype K | Comparable(K), otype V)
15void ^?{}(tree(K, V) * t){
16 delete(t->left);
17 delete(t->right);
18 ^(&t->key){};
19 ^(&t->value){};
20}
21
22forall(otype K | Comparable(K), otype V)
23tree(K, V) * create(K key, V value) {
24 // infinite loop trying to resolve ... t = malloc();
25 tree(K, V) * t = malloc(sizeof(tree(K,V)));
26 t { key, value };
27 return t;
28}
29
30// // Helper function to print trees
31// forall(otype K | Comparable(K), otype V)
32// void printTree(tree * t, int level){
33// if (empty(t)){
34// return;
35// }
36
37// printTree(t->left, level+1);
38// printf("key: %d, value: %s, level: %d\n", t->key, t->value, level);
39// printTree(t->right, level+1);
40// }
41
42// // inorder traversal of t
43// // prints each key, followed by the value
44// forall(otype K | Comparable(K), otype V)
45// void printTree(tree(K, V) * t){
46// printTree(t, 0);
47// }
Note: See TracBrowser for help on using the repository browser.