Beispiel #1
0
int
main(void)
{
    srand((unsigned)time(0));

    int count = 20, i;
    printf("### Function Test ###\n");
    printf("=== Init Skip List ===\n");
    skiplist *sl = slCreate();
    for (i = 0; i < count; ++i) {
        slInsert(sl, i);
    }
    printf("=== Print Skip List ===\n");
    slPrint(sl);

    printf("=== Search Skip List ===\n");
    for (i = 0; i < count; ++i) {
        int value = rand() % (count + 10);
        slSearch(sl, value);
    }

    printf("=== Delete Skip List ===\n");
    for (i = 0; i < count + 10; i += 2) {
        printf("Delete[%d]: %s\n", i, slDelete(sl, i) ? "SUCCESS" : "NOT FOUND");
    }
    slPrint(sl);

    slFree(sl);
    sl = NULL;

    return 0;
}
Beispiel #2
0
static int
_delete(lua_State *L) {
    skiplist *sl = _to_skiplist(L);
    double score = luaL_checknumber(L, 2);
    luaL_checktype(L, 3, LUA_TSTRING);
    slobj obj;
    obj.ptr = (char *)lua_tolstring(L, 3, &obj.length);
    lua_pushboolean(L, slDelete(sl, score, &obj));
    return 1;
}