Mercurial > hg > Gears > GearsAgda
diff src/llrb/llrbContext.c @ 24:7494c0b87ec4
implement insert of Non Destructive llrb
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 01 May 2015 05:20:47 +0900 |
parents | 868c2918b634 |
children | 44879c87c2dc |
line wrap: on
line diff
--- a/src/llrb/llrbContext.c Thu Apr 30 19:07:23 2015 +0900 +++ b/src/llrb/llrbContext.c Fri May 01 05:20:47 2015 +0900 @@ -10,11 +10,14 @@ extern __code meta(struct Context*); extern __code allocate(struct Context*); extern __code put(struct Context*); +extern __code clone(struct Context*); extern __code initNode(struct Context*); extern __code compare(struct Context*); extern __code insert(struct Context*); -extern __code insertDown(struct Context*); -extern __code insertUp(struct Context*); +extern __code rotateLeft(struct Context*); +extern __code rotateRight(struct Context*); +extern __code colorFlip(struct Context*); +extern __code changeReference(struct Context*); extern __code exit_code(struct Context*); __code initLLRBContext(struct Context* context) { @@ -31,11 +34,14 @@ context->code[Code5] = code5; context->code[Allocator] = allocate; context->code[Put] = put; + context->code[Clone] = clone; context->code[InitNode] = initNode; context->code[Compare] = compare; context->code[Insert] = insert; - /* context->code[InsertD] = insertDown; */ - /* context->code[InsertU] = insertUp; */ + context->code[RotateL] = rotateLeft; + context->code[RotateR] = rotateRight; + context->code[ColorFlip] = colorFlip; + context->code[ChangeRef] = changeReference; context->code[Exit] = exit_code; context->heap = context->heap_start;