Mercurial > hg > Members > Moririn
annotate src/llrb/verifier/verify_put_cs.c @ 270:b6ed4b2a5d9d
fix CMakeList
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 30 Jan 2017 11:16:17 +0900 |
parents | 3d7ecced7e14 |
children |
rev | line source |
---|---|
99
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 /* Verification of LLRB-Tree height in put operations. |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 * LLRB-Tree allows (max-height) <= 2*(min-height). |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 */ |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 #include <stdlib.h> |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 #include <stdio.h> |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 #include <time.h> |
100
3d7ecced7e14
Split functions which gets tree height
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
99
diff
changeset
|
8 #include "llrbContextWithVerifier.h" |
99
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 __code meta(struct Context* context, enum Code next) { |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 if (next == Put) { |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 verify_tree_height(context->data[Tree]->tree.root); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 } |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 goto (context->code[next])(context); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 } |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 __code start_code(struct Context* context, enum Code next) { |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 unsigned int seed = (unsigned int)time(NULL); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 printf("--- srand(%u)\n", seed); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 goto meta(context, next); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 } |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 __code exit_code(struct Context* context) { |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 free(context->code); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 free(context->data); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 free(context->heapStart); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 goto exit(0); |
ca55f4be5f0f
Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 } |