📄 crackers.h
字号:
#ifndef _CRACKERS_H_#define _CRACKERS_H_/*#define DEBUG_CRACKERS*//*#define DEBUG_CRACKERS_INSERTIONS*/#ifdef WIN32#ifndef LIBCRACKERS#define crackers_export extern __declspec(dllimport)#else#define crackers_export extern __declspec(dllexport)#endif#else#define crackers_export extern#endiftypedef struct { int bid; /* the cracked bat */ int cbid; /* the copy on which we actually crack */ int cid; /* the index for this cracked bat */} CrackIndex;struct Node{ lng position; bit inclusive; struct Node *left; struct Node *right; int height; bit head; bit deleted; struct Node *previous; bit isPreviousSmaller; lng hols; /* indicates how many hols exist before this piece */};typedef struct { int bid; /* the stable bat */ int cbid; /* the cracker bat, i.e., the copy on which we actually crack */ int cid; /* the index for this cracked bat */ int iid; /* pending insertions bat */ int did; /* pending deletions bat */ struct Node *Tree; /* the AVL tree */ bit reCreate; /* indicates whether we need to recreate the index if we chose to forget it */ sht mergeInsertions;/* indicates wether there are insertions to merge --> -1 no insertions, 0 complete merge, 1 gradually, 2 ripple */ bit deleteNodes; /* if true, merging operations will delete nodes form the index if it makes things easier */ bit mergeFromTheEnd; sht mergeDeletions; /* indicates wether there are insertions to merge --> -1 no insertions, 0 complete merge, 1 gradually, 2 ripple */} CrackTreeIndex;typedef struct { int bid; struct Node *Tree; } AVLTreeIndex;crackers_export str CRKselect(int *vid, int *bid, int *low, int *hgh);crackers_export str CRKselectValue(int *vid, int *bid, int *value);crackers_export str CRKuselect(int *vid, int *bid, int *low, int *hgh);crackers_export str CRKuselectValue(int *vid, int *bid, int *value);crackers_export str CRKprintCrackerIndex(int *k, int *bid);crackers_export str CRKprintCrackerBAT(int *k, int *bid);crackers_export str CRKgetCrackerBAT(int *vid, int *bid);crackers_export str CRKsizeCrackerInsertions(int *k, int *bid);crackers_export str CRKsizeCrackerDeletions(int *k, int *bid);crackers_export str CRKprintCrackerInsertions(int *k, int *bid);crackers_export str CRKprintCrackerDeletions(int *k, int *bid);crackers_export str CRKmergeInsertions_Forget(int *k, int *bid, int *new);crackers_export str CRKmergeInsertions_OnNeed(int *k, int *bid, int *new, bit *deleteNodes);crackers_export str CRKmergeInsertionsB_OnNeed(int *k, int *bid, int *new);crackers_export str CRKmergeInsertions_OnNeedGradually(int *k, int *bid, int *new, bit *deleteNodes);crackers_export str CRKmergeInsertionsB_OnNeedGradually(int *k, int *bid, int *new);crackers_export str CRKmergeInsertions_OnNeedGraduallyRipple(int *k, int *bid, int *new, bit *deleteNodes);crackers_export str CRKmergeInsertionsB_OnNeedGraduallyRipple(int *k, int *bid, int *new);crackers_export str CRKextendCrackerBAT(int *k, int *bid, lng positions);crackers_export str CRKprintAVLTree_int(int *k, int *bid);crackers_export str CRKmergeDeletions_OnNeed(int *k, int *bid, int *new);crackers_export str CRKmergeDeletions_OnNeedGradually(int *k, int *bid, int *new);crackers_export str CRKmergeDeletions_OnNeedGraduallyRipple(int *k, int *bid, int *new);#endif /* _CRACKERS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -