亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bplus.cpp

?? 計算機英漢機器翻譯系統(tǒng)中的英語詞性標(biāo)注方法實現(xiàn)
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
        CO(pci->level) = -1;
      }

    return ( IX_OK );
  } /* first_key */


int  last_key(IX_DESC *pix)
  {
    long  ads;
    pci = pix;
    block_ptr = &(pci->root);
    CB(0) = 0L;
    pci->level = 0;
    if(last_entry() >= 0)
      {
        while ((ads = ENT_ADR(block_ptr,last_entry())->idxptr) != NULLREC)
             retrieve_block(++(pci->level), ads);
      }
    CO(pci->level) = block_ptr->bend;
    return ( IX_OK );
  } /* last_key */


/*  get next, previous entries  */

int  next_key(ENTRY *pe, IX_DESC *pix)
  {

    RECPOS  address;
    pci = pix;
    retrieve_block(pci->level, CB(pci->level));
    address = ENT_ADR(block_ptr, CO(pci->level))->idxptr;
    while (address != NULLREC)
      {
         retrieve_block(++(pci->level), address);
         CO(pci->level) = -1;
         address = block_ptr->p0;
      }
    next_entry(CO(pci->level));
    if (CO(pci->level) == block_ptr->bend)
      {
        do
          { if(pci->level == 0)
              {
                last_key(pci);
                return (EOIX);
              }
            --(pci->level);
            retrieve_block(pci->level, CB(pci->level));
            next_entry(CO(pci->level));
          } while (CO(pci->level) == block_ptr->bend);
      }
    copy_entry(pe, ENT_ADR(block_ptr, CO(pci->level)));
    return ( IX_OK );
  } /* next_key */


int  prev_key(ENTRY *pe,   IX_DESC *pix)
  {
    RECPOS  address;
    pci = pix;
    retrieve_block(pci->level, CB(pci->level));
    prev_entry(CO(pci->level));
    if (CO(pci->level) == -1)
      address = block_ptr->p0;
    else
      address = ENT_ADR(block_ptr, CO(pci->level))->idxptr;
    if (address != NULLREC)
      { do
          {
            retrieve_block(++(pci->level), address);
            address = ENT_ADR(block_ptr, last_entry())->idxptr;
          } while (address != NULLREC);
      }
    if (CO(pci->level) == -1)
      { do
          {
            if(pci->level == 0)
              {
                first_key(pci);
                return (EOIX);
              }
            --(pci->level);
          } while (CO(pci->level) == -1);
        retrieve_block(pci->level, CB(pci->level));
      }
    copy_entry(pe, ENT_ADR(block_ptr, CO(pci->level)));
    return ( IX_OK );
  } /* prev_key */


/*  insert new entries into tree  */

int  split(  int l, ENTRY *pe, ENTRY *e)
  {
    int  half, ins_pos, size;
    ins_pos = CO(pci->level);
    half = scan_blk(block_ptr->bend / 2 + sizeof(RECPOS));
    if (half == ins_pos)
      *e = *pe;
    else
      {
         copy_entry(e, ENT_ADR(block_ptr, half));
         size = ENT_SIZE(e);
         movedown(block_ptr, half, size);
         block_ptr->bend -= size;
      }
    spare_block = &BUFBLOCK(new_cache());
    memcpy(spare_block->entries,
           ENT_ADR(block_ptr,half),
           block_ptr->bend - half);
    spare_block->brec = get_free();
    spare_block->bend = block_ptr->bend - half;
    spare_block->p0 = e->idxptr;
    block_ptr->bend = half;
    e->idxptr = spare_block->brec;
    if (ins_pos < half)
      ins_block(block_ptr,pe,ins_pos);
    else if (ins_pos > half)
      {
         ins_pos -= ENT_SIZE(e);
         ins_block(spare_block,pe,ins_pos - half);
         CB(l) = e->idxptr;
         CO(l) = CO(l) - half;
      }
    write_if(pci->ixfile, spare_block->brec,
             (char *) spare_block, sizeof(BLOCK));
	return 1;

  } /* split */


void  ins_level(  int l, ENTRY *e)
  {
    int  i;
    if ( l < 0)
      {  for (i = 1; i < MAX_LEVELS; i++)
           {  CO(MAX_LEVELS - i) = CO(MAX_LEVELS - i - 1);
              CB(MAX_LEVELS - i) = CB(MAX_LEVELS - i - 1);
           }
         memcpy(spare_block, &(pci->root), sizeof(BLOCK));
         spare_block->brec = get_free();
         write_if(pci->ixfile, spare_block->brec,
                  (char *) spare_block, sizeof(BLOCK));
         pci->root.p0 = spare_block->brec;
         copy_entry((ENTRY *) (pci->root.entries), e);
         pci->root.bend = ENT_SIZE(e);
         CO(0) = 0;
         pci->level = 0;
         (pci->dx.nl)++;
      }
    else ins_block(block_ptr,e,CO(l));
  } /* ins_level */


int  insert_ix(ENTRY *pe, IX_DESC *pix)
  {
    ENTRY    e, ee;
    pci = pix;
    ee = *pe;
    do
      {
         if(CO(pci->level) >= 0)
           CO(pci->level) +=
                  ENT_SIZE(ENT_ADR(block_ptr, CO(pci->level)));
         else
           CO(pci->level) = 0;
         update_block();
         if( (block_ptr->bend + ENT_SIZE(&ee)) <= split_size)
           {
             ins_level(pci->level, &ee);
             break;
           }
         else
           {
             split(pci->level,&ee, &e);
              ee = e;
              pci->level--;
              if (pci->level < 0)
                {
                  ins_level(pci->level, &e);
                  break;
                }
              retrieve_block(pci->level, CB(pci->level));
           }
      }
    while (1);
    return ( IX_OK );
  } /* insert_ix */


/*  BPLUS find and add key functions  */

int  find_ix(  ENTRY *pe,   IX_DESC *pix, int find)
  {
    int      level, off, ret;
    RECPOS   ads;
    ENTRY    found;
    pci = pix;
    ads = 0L;
    level = ret = 0;
    while (ads != NULLREC)
      {  pci->level = level;
         retrieve_block(level, ads);
         if (find_block(pe, &off) == 0) ret = 1;
         if (ret && find) break;
         if (off == -1)
           ads = block_ptr->p0;
         else
           ads = ENT_ADR(block_ptr, off)->idxptr;
         CO(level++) = off;
       }
     return ( ret );
   } /* find_ix */


int  find_key(ENTRY *pe,   IX_DESC *pix)
  {
    int ret;
    ret = find_ix(pe, pix, 1);
    if ( ret ) copy_entry(pe, ENT_ADR(block_ptr, CO(pci->level)));
    return ( ret );
  } /* find_key */


int  add_key(ENTRY *pe,   IX_DESC *pix)
  {
    int ret;
    ret = find_ix(pe, pix, 0);
    if ( ret && (pci->duplicate == 0)) return ( IX_FAIL );
    pe->idxptr = NULLREC;
    return (insert_ix(pe, pix));
  } /* add_key */


int  locate_key(  ENTRY *pe,   IX_DESC *pix)

  {
    int ret;
    ENTRY e;
    ret = find_ix(pe, pix, 1);
    if (ret) copy_entry(pe, ENT_ADR(block_ptr, CO(pci->level)));
    else if (next_key(pe,pix) == EOIX) ret = EOIX;
    return ( ret );
  } /* locate_key */


int  find_exact(ENTRY *pe, IX_DESC * pix)
  {
    int  ret;
    ENTRY e;
    copy_entry(&e, pe);
    ret = find_key(&e, pix);
    if ( ret && pci->duplicate)
      {
        do
          {
            ret = (e.recptr == pe->recptr);
            if( !ret )  ret = next_key(&e, pci);
            if (ret) ret = (strcmp(e.key, pe->key) == 0);
            if ( !ret ) return ( 0 );
          } while ( !ret );
      }
    copy_entry(pe, &e);
    return ( ret );
  } /* find_exact */


/* BPLUS delete key functions */

int  delete_key(ENTRY *pe, IX_DESC *pix)
  {
     ENTRY   e;
     RECPOS  ads;
     int     h, leveli, levelf;
     if (!find_exact(pe, pix))  return( IX_FAIL );
     h = 1;
     if ((ads = pe->idxptr) != NULLREC)
       {
          leveli = pci->level;
          do
            {
               retrieve_block(++(pci->level), ads);
               CO(pci->level) = -1;
            }
          while ((ads = block_ptr->p0) != NULLREC);
          CO(pci->level) = 0;
          copy_entry(&e, ENT_ADR(block_ptr, CO(pci->level)));
          levelf = pci->level;
          pci->level = leveli;
          replace_entry(&e);
          pci->level = levelf;
       }
     while ( h )
       {
          retrieve_block(pci->level, CB(pci->level));
          del_block(block_ptr, CO(pci->level));
          update_block();
          if ( (pci->level == 0) && (block_ptr->bend == 0))
          /* tree was reduced in height */
            {
              if (pci->root.p0 != NULLREC)
                {
                  retrieve_block(++pci->level, pci->root.p0);
                  memcpy(&(pci->root), block_ptr, sizeof(BLOCK));
                  (pci->dx.nl)--;
                  write_free(block_ptr->brec, block_ptr);
                  BUFDIRTY(cache_ptr) = 0;
                  BUFHANDLE(cache_ptr) = 0;
                }
              break;
            }
          h = (block_ptr->bend < comb_size) && (pci->level > 0);
          if ( h )
              h = combineblk(CB(pci->level), block_ptr->bend);
       }
    return( IX_OK );
  } /* delete_key */


int  combineblk(RECPOS ads, int size)
  {
    ENTRY  e;
    RECPOS address;
    int    esize, off, ret, saveoff, ibuff;
    ret = 0;
    saveoff = CO(--(pci->level));
    retrieve_block(pci->level, CB(pci->level));
    if ((off = next_entry( saveoff )) < block_ptr->bend)
      /* combine with page on right */
      {
        if ( (ENT_SIZE(ENT_ADR(block_ptr, off)) + size) < split_size)
          {
            copy_entry(&e, ENT_ADR(block_ptr, off));
            address = ENT_ADR(block_ptr, CO(pci->level))->idxptr;
            retrieve_block(++pci->level, address);
            ibuff = cache_ptr;
            spare_block = block_ptr;
            retrieve_block(pci->level, ads);
            esize = ENT_SIZE(&e);
            if(((block_ptr->bend + spare_block->bend + esize) >= split_size)
                 && (spare_block->bend <= block_ptr->bend + esize))
               return( ret );
            e.idxptr = spare_block->p0;
            ins_block(block_ptr, &e, block_ptr->bend);
            update_block();
            if ((block_ptr->bend + spare_block->bend) < split_size)
            /* combine the blocks */
              {
                memcpy(ENT_ADR(block_ptr, block_ptr->bend),
                       ENT_ADR(spare_block, 0),
                       spare_block->bend);
                block_ptr->bend += spare_block->bend;
                write_free(spare_block->brec, spare_block);
                BUFDIRTY(ibuff) = 0;
                BUFHANDLE(ibuff) = 0;
                --pci->level;
                ret = 1;
              }
            else
            /* move an entry up to replace the one moved */
              {
                copy_entry(&e, ENT_ADR(spare_block, 0));
                esize = ENT_SIZE(&e);
                movedown(spare_block, 0, esize);
                spare_block->bend -= esize;
                spare_block->p0 = e.idxptr;
                BUFDIRTY(ibuff) = 1;
                --(pci->level);
                replace_entry(&e);
              }
          }
      }
    else
      /* move from page on left */
      {
        if ( (ENT_SIZE(ENT_ADR(block_ptr, CO(pci->level))) + size)
                 < split_size)
          {
            copy_entry(&e, ENT_ADR(block_ptr, saveoff));
            off = prev_entry(saveoff);
            if (CO(pci->level) == -1) address = block_ptr->p0;
            else address = ENT_ADR(block_ptr, CO(pci->level))->idxptr;
            retrieve_block(++pci->level, address);
            off = last_entry();
            ibuff = cache_ptr;
            spare_block = block_ptr;
            retrieve_block(pci->level, ads);
            esize = ENT_SIZE(&e);
            if(((block_ptr->bend + spare_block->bend + esize) >= split_size)
                 && (spare_block->bend <= block_ptr->bend + esize))
               return( ret );
            BUFDIRTY(ibuff) = 1;
            CO(pci->level) = 0;
            e.idxptr = block_ptr->p0;
            ins_block(block_ptr, &e, 0);
            if ((block_ptr->bend + spare_block->bend) < split_size)
            /* combine the blocks */
              {
                memcpy(ENT_ADR(spare_block, spare_block->bend),
                       ENT_ADR(block_ptr, 0),
                       block_ptr->bend);
                spare_block->bend += block_ptr->bend;
                write_free(block_ptr->brec, block_ptr);
                BUFDIRTY(cache_ptr) = 0;
                BUFHANDLE(cache_ptr) = 0;
                CO(--(pci->level)) = saveoff;
                ret = 1;
              }
            else
            /* move an entry up to replace the one moved */
              {
                 block_ptr->p0 = ENT_ADR(spare_block,off)->idxptr;
                 copy_entry(&e, ENT_ADR(spare_block, off));
                 spare_block->bend = off;
                 update_block();
                 CO(--(pci->level)) = saveoff;
                 replace_entry(&e);
              }
          }
      }
    return ( ret );
  } /* combineblk */


void  replace_entry(ENTRY *pe)
  {
    retrieve_block(pci->level, CB(pci->level));
    pe->idxptr = ENT_ADR(block_ptr, CO(pci->level))->idxptr;
    del_block(block_ptr, CO(pci->level));
    prev_entry(CO(pci->level));
    insert_ix(pe, pci);
  } /* replace_entry */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费观看高清完整版在线| 91精品国产综合久久久久| 精品国产免费一区二区三区四区| 午夜精彩视频在线观看不卡| 欧美三级电影一区| 日韩精品福利网| 日韩精品在线一区| 国产一区二区女| 国产精品伦理一区二区| 91女厕偷拍女厕偷拍高清| 一区二区在线免费观看| 欧美精品日韩综合在线| 国产一区高清在线| 中文字幕一区二区不卡| 欧美日韩国产电影| 国内成人免费视频| 日韩毛片视频在线看| 欧美日韩五月天| 欧美日韩一区二区不卡| 蜜桃av一区二区三区| 久久久五月婷婷| 91色porny| 麻豆91在线播放免费| 中文字幕av资源一区| 欧美午夜精品久久久久久超碰| 奇米777欧美一区二区| 国产欧美一区二区精品性| 91成人看片片| 激情偷乱视频一区二区三区| 亚洲男人天堂av| 日韩亚洲欧美成人一区| 972aa.com艺术欧美| 蜜臀av一区二区在线观看| 国产精品久久久久久久久久久免费看 | 丰满白嫩尤物一区二区| 亚洲综合999| 久久精品人人爽人人爽| 欧美三级三级三级| 成人小视频在线| 日韩av网站免费在线| 综合激情网...| 久久日韩粉嫩一区二区三区| 欧美色图第一页| voyeur盗摄精品| 久久av资源站| 亚洲gay无套男同| 成人欧美一区二区三区小说| 精品理论电影在线观看| 欧美日韩一区精品| 91丝袜国产在线播放| 国产精品中文有码| 蜜臀a∨国产成人精品| 亚洲一区免费视频| 国产精品成人网| 久久精品视频在线看| 日韩午夜激情视频| 欧美日韩高清在线播放| 色欧美片视频在线观看在线视频| 国产一区二区三区综合| 无码av免费一区二区三区试看| 最新欧美精品一区二区三区| 国产欧美一区二区三区在线看蜜臀| 欧美激情一区二区三区四区| 欧美xxx久久| 7777精品伊人久久久大香线蕉经典版下载 | 欧美视频完全免费看| 国产v综合v亚洲欧| 国内精品久久久久影院一蜜桃| 免费欧美在线视频| 图片区日韩欧美亚洲| 亚洲一二三区视频在线观看| 亚洲免费av网站| 亚洲欧美韩国综合色| 亚洲视频一区二区在线| 国产精品久久久久久久岛一牛影视 | 国产精品麻豆视频| 欧美经典一区二区| 国产日韩欧美精品电影三级在线| 精品国产乱码久久久久久1区2区 | 久久99精品国产麻豆婷婷| 蜜臀av一区二区在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 日本丶国产丶欧美色综合| 91色porny| 欧美伊人精品成人久久综合97| 一本色道**综合亚洲精品蜜桃冫| 91福利视频久久久久| 欧美性受xxxx黑人xyx| 欧美三级乱人伦电影| 91精品国产乱| 欧美精品一区二区三区蜜桃| 久久久久久久久久看片| 国产日韩欧美电影| 亚洲欧洲三级电影| 一区二区三区精密机械公司| 亚洲18女电影在线观看| 麻豆久久一区二区| 国产一区二区三区观看| av午夜一区麻豆| 欧美视频在线观看一区二区| 日韩午夜三级在线| 国产午夜精品久久久久久免费视| 国产精品免费久久久久| 亚洲一区二区三区在线看| 视频一区在线视频| 国产激情视频一区二区在线观看| 成人18视频日本| 欧美日韩一区二区在线视频| 日韩美一区二区三区| 欧美激情综合五月色丁香小说| 亚洲女同一区二区| 六月丁香综合在线视频| 成人午夜精品一区二区三区| 色欧美88888久久久久久影院| 亚洲综合一区在线| 秋霞成人午夜伦在线观看| 国产福利一区二区三区视频在线| 色欧美片视频在线观看| 日韩一区二区三区三四区视频在线观看| 久久久久久久精| 一区二区三区在线视频观看| 久久99精品国产麻豆婷婷| 99精品偷自拍| 欧美成人精品1314www| 亚洲色图欧美偷拍| 久久91精品国产91久久小草| 91视频在线观看免费| 日韩三级.com| 一区二区三区免费| 国产精品一区三区| 91麻豆精品国产91久久久久久 | 国产无遮挡一区二区三区毛片日本| 一区二区三区在线视频观看58 | 本田岬高潮一区二区三区| 91精品免费观看| 亚洲私人黄色宅男| 国产在线精品一区二区不卡了| 欧美在线免费观看视频| 中文字幕国产一区| 九一九一国产精品| 欧美日韩午夜精品| 亚洲欧美综合网| 国产美女一区二区三区| 这里只有精品视频在线观看| 亚洲美女视频在线观看| 床上的激情91.| 久久亚洲综合av| 麻豆国产欧美一区二区三区| 在线观看免费亚洲| 一区在线观看视频| 国产成人在线网站| 日韩女优av电影| 日韩黄色免费电影| 欧美在线啊v一区| 亚洲欧美一区二区不卡| 成人影视亚洲图片在线| 2021国产精品久久精品| 男女激情视频一区| 91精品国产综合久久久蜜臀图片 | 风间由美性色一区二区三区| 91精品国产手机| 亚洲第一主播视频| 欧美优质美女网站| 亚洲免费在线观看视频| 99riav一区二区三区| 国产精品乱人伦| 成人aaaa免费全部观看| 国产精品免费视频网站| 成人在线视频一区二区| 国产精品欧美精品| 不卡的av电影| 亚洲女人****多毛耸耸8| 972aa.com艺术欧美| 亚洲男帅同性gay1069| 色婷婷精品大视频在线蜜桃视频| 日韩理论片在线| 色欧美乱欧美15图片| 亚洲一区二区在线视频| 欧美日韩你懂的| 免费观看91视频大全| 精品久久久久久最新网址| 韩国精品久久久| 中文字幕不卡三区| 日本久久一区二区三区| 亚洲影视在线观看| 日韩一区二区三区精品视频| 激情文学综合插| 国产精品日韩精品欧美在线| 色综合网色综合| 视频一区视频二区中文字幕| 欧美mv日韩mv| 成人国产在线观看| 亚洲国产另类精品专区| 日韩免费高清av| 成人av影视在线观看| 亚洲综合在线第一页| 日韩免费观看高清完整版在线观看 | 欧美大肚乱孕交hd孕妇| 国产成人av电影在线观看| 一区二区三区在线观看网站|