view src/llrb/llrbContext.c @ 21:737a900518be

implement insert
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 28 Apr 2015 14:34:59 +0900
parents 324c44f2076f
children 4c3c0ad4a75d
line wrap: on
line source

#include "llrbContext.h"
extern __code code1(struct Context*);
extern __code code2(struct Context*);
extern __code code3(struct Context*);
extern __code meta(struct Context*);
extern __code allocate(struct Context*);
extern __code put(struct Context*);
extern __code insertDown(struct Context*);
extern __code insertUp(struct Context*);
extern __code exit_code(struct Context*);

__code initLLRBContext(struct Context* context) {
    context->codeSize = 3;
    context->code[Code1]    = code1;
    context->code[Code2]    = code2;
    context->code[Code3]    = code3;
    context->code[Allocate] = allocate;
    context->code[Put]      = put;
    context->code[InsertD]  = insertDown;
    context->code[InsertU]  = insertUp;
    context->code[Exit]     = exit_code;
    
    context->dataSize = 0;
    context->data[context->dataSize] = context->heap;
    context->heap += sizeof(struct Allocate);

    context->root = 0;
    context->current = 0;
}