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;