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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? algorithms in c++, parts 1-4 (fundamental algorithms, data structures, sorting, searching) code.txt

?? Algorithms in C++, Parts 1-4 (Fundamental Algorithms, Data Structures, Sorting, Searching) code
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
      if (t < k) return selectR(h->r, k-t-1);      return h->item;    }public:  Item select(int k)    { return selectR(head, k); } -----void partR(link& h, int k)  { int t = (h->l == 0) ? 0: h->l->N;    if (t > k )      { partR(h->l, k); rotR(h); }    if (t < k )      { partR(h->r, k-t-1); rotL(h); }  } -----private:  link joinLR(link a, link b)    {       if (b == 0) return a;      partR(b, 0); b->l = a;       return b;    }  void removeR(link& h, Key v)    { if (h == 0) return;      Key w = h->item.key();       if (v < w) removeR(h->l, v);      if (w < v) removeR(h->r, v);      if (v == w)         { link t = h;           h = joinLR(h->l, h->r); delete t; }    }public:  void remove(Item x)    { removeR(head, x.key()); }-----    private:      link joinR(link a, link b)        {           if (b == 0) return a;          if (a == 0) return b;          insertT(b, a->item);           b->l = joinR(a->l, b->l);           b->r = joinR(a->r, b->r);           delete a; return b;        }    public:      void join(ST<Item, Key>& b)        { head = joinR(head, b.head); }----------CHAPTER 13. Balanced Trees-----void balanceR(link& h)  {    if ((h == 0) || (h->N == 1)) return;    partR(h, h->N/2);    balanceR(h->l);    balanceR(h->r);  }-----private:  void insertR(link& h, Item x)    { if (h == 0) { h = new node(x); return; }      if (rand() < RAND_MAX/(h->N+1))        { insertT(h, x); return; }      if (x.key() < h->item.key())            insertR(h->l, x);      else insertR(h->r, x);      h->N++;     }public:  void insert(Item x)    { insertR(head, x); }-----private:  link joinR(link a, link b)    {       if (a == 0) return b;      if (b == 0) return a;      insertR(b, a->item);       b->l = joinR(a->l, b->l);       b->r = joinR(a->r, b->r);       delete a; fixN(b); return b;    }public:  void join(ST<Item, Key>& b)    { int N = head->N;      if (rand()/(RAND_MAX/(N+b.head->N)+1) < N)           head = joinR(head, b.head);      else head = joinR(b.head, head); }-----link joinLR(link a, link b)  {     if (a == 0) return b;    if (b == 0) return a;    if (rand()/(RAND_MAX/(a->N+b->N)+1) < a->N)         { a->r = joinLR(a->r, b); return a; }    else { b->l = joinLR(a, b->l); return b; }  }-----private:  void splay(link& h, Item x)    {       if (h == 0)         { h = new node(x, 0, 0, 1); return; }      if (x.key() < h->item.key())        { link& hl = h->l; int N = h->N;          if (hl == 0)             { h = new node(x, 0, h, N+1); return; }          if (x.key() <  hl->item.key())                { splay(hl->l, x); rotR(h); }          else { splay(hl->r, x); rotL(hl); }          rotR(h);        }      else        { link &hr = h->r; int N = h->N;          if (hr == 0)             { h = new node(x, h, 0, N+1); return; }          if (hr->item.key() < x.key())                { splay(hr->r, x); rotL(h); }          else { splay(hr->l, x); rotR(hr); }          rotL(h);        }    }public:  void insert(Item item)    { splay(head, item); }-----private:  int red(link x)     { if (x == 0) return 0; return x->red; }  void RBinsert(link& h, Item x, int sw)    {       if (h == 0) { h = new node(x); return; }      if (red(h->l) && red(h->r))       { h->red = 1; h->l->red = 0; h->r->red = 0; }      if (x.key() < h->item.key())        {          RBinsert(h->l, x, 0);           if (red(h) && red(h->l) && sw) rotR(h);           if (red(h->l) && red(h->l->l))             { rotR(h); h->red = 0; h->r->red = 1; }        }      else        {           RBinsert(h->r, x, 1);           if (red(h) && red(h->r) && !sw) rotL(h);           if (red(h->r) && red(h->r->r))             { rotL(h); h->red = 0; h->l->red = 1; }        }    }public:  void insert(Item x)    { RBinsert(head, x, 0); head->red = 0; }-----private:  Item searchR(link t, Key v, int k)    { if (t == 0) return nullItem;      if (v == t->item.key()) return t->item;      link x = t->next[k];      if ((x == 0) || (v < x->item.key()))         {           if (k == 0) return nullItem;          return searchR(t, v, k-1);         }      return searchR(x, v, k);    }public:  Item search(Key v)    { return searchR(head, v, lgN); }-----private:  struct node     { Item item; node **next; int sz;       node(Item x, int k)        { item = x; sz = k; next = new node*[k];           for (int i = 0; i < k; i++) next[i] = 0; }     };   typedef node *link;  link head;  Item nullItem;  int lgN;public:  ST(int)    { head = new node(nullItem, lgNmax); lgN = 0; }-----private:  int randX()    { int i, j, t = rand();      for (i = 1, j = 2; i < lgNmax; i++, j += j)        if (t > RAND_MAX/j) break;      if (i > lgN) lgN = i;      return i;    }  void insertR(link t, link x, int k)    { Key v = x->item.key(); link tk = t->next[k];      if ((tk == 0) || (v < tk->item.key()))         {           if (k < x->sz)            { x->next[k] = tk; t->next[k] = x; }          if (k == 0) return;          insertR(t, x, k-1); return;        }      insertR(tk, x, k);    }public:  void insert(Item v)    { insertR(head, new node(v, randX()), lgN); }-----private:  void removeR(link t, Key v, int k)    { link x = t->next[k];      if (!(x->item.key() < v))         {           if (v == x->item.key())            { t->next[k] = x->next[k]; }          if (k == 0) { delete x; return; }          removeR(t, v, k-1); return;        }      removeR(t->next[k], v, k);    }public:  void remove(Item x)    { removeR(head, x.key(), lgN); }----------CHAPTER 14. Hashing-----int hash(char *v, int M)  { int h = 0, a = 127;    for (; *v != 0; v++)       h = (a*h + *v) % M;    return h;  }-----int hashU(char *v, int M)  { int h, a = 31415, b = 27183;    for (h = 0; *v != 0; v++, a = a*b % (M-1))         h = (a*h + *v) % M;    return (h < 0) ? (h + M) : h;  }-----private:  link* heads;  int N, M;public:  ST(int maxN)    {       N = 0; M = maxN/5;      heads = new link[M];       for (int i = 0; i < M; i++) heads[i] = 0;    }  Item search(Key v)    { return searchR(heads[hash(v, M)], v); }  void insert(Item item)    { int i = hash(item.key(), M);      heads[i] = new node(item, heads[i]); N++; }-----private:  Item *st;   int N, M;  Item nullItem;public:  ST(int maxN)    {       N = 0; M = 2*maxN;      st = new Item[M];       for (int i = 0; i < M; i++) st[i] = nullItem;    }  int count() const { return N; }  void insert(Item item)    { int i = hash(item.key(), M);      while (!st[i].null()) i = (i+1) % M;      st[i] = item; N++;    }  Item search(Key v)    { int i = hash(v, M);      while (!st[i].null())      if (v == st[i].key()) return st[i];        else i = (i+1) % M;      return nullItem;    }-----void remove(Item x)  { int i = hash(x.key(), M), j;    while (!st[i].null())      if (x.key() == st[i].key()) break;         else i = (i+1) % M;    if (st[i].null()) return;    st[i] = nullItem; N--;    for (j = i+1; !st[j].null(); j = (j+1) % M, N--)    { Item v = st[j]; st[j] = nullItem; insert(v); }  }-----void insert(Item item)  { Key v = item.key();    int i = hash(v, M), k = hashtwo(v, M);    while (!st[i].null()) i = (i+k) % M;    st[i] = item; N++;  }Item search(Key v)  { int i = hash(v, M), k = hashtwo(v, M);    while (!st[i].null())    if (v == st[i].key()) return st[i];      else i = (i+k) % M;    return nullItem;  }-----private:  void expand()    { Item *t = st;      init(M+M);      for (int i = 0; i < M/2; i++)        if (!t[i].null()) insert(t[i]);      delete t;    }public:  ST(int maxN)    { init(4); }  void insert(Item item)    { int i = hash(item.key(), M);      while (!st[i].null()) i = (i+1) % M;      st[i] = item;       if (N++ >= M/2) expand();    }----------CHAPTER 15. Radix Search-----private:  Item searchR(link h, Key v, int d)    { if (h == 0) return nullItem;      if (v ==  h->item.key()) return h->item;      if (digit(v, d) == 0)           return searchR(h->l, v, d+1);      else return searchR(h->r, v, d+1);    }public:  Item search(Key v)     { return searchR(head, v, 0); } -----private:  Item searchR(link h, Key v, int d)    { if (h == 0) return nullItem;      if (h->l == 0 && h->r == 0)        { Key w = h->item.key();          return (v == w) ? h->item : nullItem; }      if (digit(v, d) == 0)           return searchR(h->l, v, d+1);      else return searchR(h->r, v, d+1);    }public:  Item search(Key v)     { return searchR(head, v, 0); } -----private:  link split(link p, link q, int d)    { link t = new node(nullItem); t->N = 2;      Key v = p->item.key(); Key w = q->item.key();      switch(digit(v, d)*2 + digit(w, d))        { case 0: t->l = split(p, q, d+1); break;          case 1: t->l = p; t->r = q; break;          case 2: t->r = p; t->l = q; break;          case 3: t->r = split(p, q, d+1); break;        }      return t;    }  void insertR(link& h, Item x, int d)    { if (h == 0) { h = new node(x); return; }      if (h->l == 0 && h->r == 0)        { h = split(new node(x), h, d); return; }      if (digit(x.key(), d) == 0)            insertR(h->l, x, d+1);      else insertR(h->r, x, d+1);    }public:  ST(int maxN)    { head = 0; }  void insert(Item item)    { insertR(head, item, 0); }-----private:  Item searchR(link h, Key v, int d)    {       if (h->bit <= d) return h->item;      if (digit(v, h->bit) == 0)           return searchR(h->l, v, h->bit);      else return searchR(h->r, v, h->bit);    }public:  Item search(Key v)     { Item t = searchR(head, v, -1);       return (v == t.key()) ? t : nullItem;    } -----private:  link insertR(link h, Item x, int d, link p)    { Key v = x.key();      if ((h->bit >= d) || (h->bit <= p->bit))        {           link t = new node(x); t->bit = d;          t->l = (digit(v, t->bit) ? h : t);          t->r = (digit(v, t->bit) ? t : h);          return t;         }      if (digit(v, h->bit) == 0)           h->l = insertR(h->l, x, d, h);      else h->r = insertR(h->r, x, d, h);      return h;    }public:  void insert(Item x)    { Key v = x.key(); int i;      Key w = searchR(head->l, v, -1).key();      if (v == w) return;      for (i = 0; digit(v, i) == digit(w, i); i++) ;      head->l = insertR(head->l, x, i, head);    }  ST(int maxN)    { head = new node(nullItem);       head->l = head->r = head; }-----private:  void showR(link h, ostream& os, int d)    {       if (h->bit <= d) { h->item.show(os); return; }      showR(h->l, os, h->bit);      showR(h->r, os, h->bit);    }public:  void show(ostream& os)    { showR(head->l, os, -1); } -----private:  struct node     { node **next;      node()        { next = new node*[R];          for (int i = 0; i < R; i++) next[i] = 0; }     };   typedef node *link;  link head;  Item searchR(link h, Key v, int d)    { int i = digit(v, d);       if (h == 0) return nullItem;      if (i == NULLdigit)         { Item dummy(v); return dummy; }      return searchR(h->next[i], v, d+1);    }  void insertR(link& h, Item x, int d)    { int i = digit(x.key(), d);      if (h == 0) h = new node;      if (i == NULLdigit) return;      insertR(h->next[i], x, d+1);    }public:  ST(int maxN)    { head = 0; }  Item search(Key v)     { return searchR(head, v, 0); }   void insert(Item x)    { insertR(head, x, 0); }-----private:  struct node     { Item item; int d; node *l, *m, *r;      node(int k)        { d = k; l = 0; m = 0; r = 0; }     };   typedef node *link;  link head;  Item nullItem;   Item searchR(link h, Key v, int d)    { int i = digit(v, d);       if (h == 0) return nullItem;      if (i == NULLdigit)         { Item dummy(v); return dummy; }      if (i < h->d) return searchR(h->l, v, d);      if (i == h->d) return searchR(h->m, v, d+1);      if (i > h->d) return searchR(h->r, v, d);    }  void insertR(link& h, Item x, int d)    { int i = digit(x.key(), d);      if (h == 0) h = new node(i);      if (i == NULLdigit) return;      if (i < h->d) insertR(h->l, x, d);      if (i == h->d) insertR(h->m, x, d+1);      if (i > h->d) insertR(h->r, x, d);    }public:  ST(int maxN)    { head = 0; }  Item search(Key v)     { return searchR(head, v, 0); }   void insert(Item x)    { insertR(head, x, 0); }-----private:  char word[maxW];  void matchR(link h, char *v, int i)    {       if (h == 0) return;      if ((*v == 0) && (h->d == 0))        { word[i] = 0; cout << word << " "; }      if ((*v == '*') || (*v == h->d))        { word[i] = h->d; matchR(h->m, v+1, i+1); }      if ((*v == '*') || (*v < h->d))        matchR(h->l, v, i);      if ((*v == '*') || (*v > h->d))        matchR(h->r, v, i);    }public:  void match(char *v)     { matchR(head, v, 0); }-----  struct node     { Item item; int d; node *l, *m, *r;       node(Item x, int k)        { item = x; d = k; l = 0; m = 0; r = 0; }       node(node* h, int k)        { d = k; l = 0; m = h; r = 0; }       int internal()         { return d != NULLdigit; }     };   typedef node *link;  link heads[R];  Item nullItem;-----private:  link split(link p, link q, int d)    { int pd = digit(p->item.key(), d),           qd = digit(q->item.key(), d);      link t = new node(nullItem, q

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区自拍| 日韩精品国产欧美| 手机精品视频在线观看| 国产很黄免费观看久久| 欧美午夜在线一二页| 国产目拍亚洲精品99久久精品| 亚洲最大色网站| 成人性生交大片免费看中文网站| 91精品国产品国语在线不卡| 最新国产の精品合集bt伙计| 国产精品88888| 欧美一区二区在线不卡| 亚洲一卡二卡三卡四卡五卡| 成人动漫在线一区| 久久久久久**毛片大全| 免费成人在线影院| 精品视频免费看| 一个色妞综合视频在线观看| 成人不卡免费av| 国产色婷婷亚洲99精品小说| 老司机免费视频一区二区| 欧美高清视频www夜色资源网| 亚洲欧美日本韩国| 91在线观看下载| 国产精品久久综合| 成人午夜私人影院| 国产欧美一区二区精品久导航| 久久精品国产精品亚洲红杏| 337p亚洲精品色噜噜| 三级一区在线视频先锋| 欧美日韩高清一区二区不卡| 亚洲精品免费一二三区| 色综合色狠狠天天综合色| 1024精品合集| 色综合中文综合网| 制服.丝袜.亚洲.另类.中文| 一区二区三区中文字幕精品精品| 成人免费看视频| 国产精品久久久久久久久免费丝袜 | 国产日韩欧美亚洲| 高清不卡一区二区在线| 国产精品久久99| 97国产一区二区| 一区二区三区不卡视频| 欧美肥妇free| 激情文学综合插| 中文成人综合网| 在线视频你懂得一区| 亚洲电影欧美电影有声小说| 在线成人小视频| 国产伦精品一区二区三区免费迷| 久久久久久久一区| av亚洲产国偷v产偷v自拍| 伊人一区二区三区| 56国语精品自产拍在线观看| 六月丁香综合在线视频| 国产亲近乱来精品视频| 色综合久久天天| 亚洲一卡二卡三卡四卡无卡久久 | 成人一区在线观看| 一个色综合av| 精品国产乱码久久久久久浪潮| 粉嫩嫩av羞羞动漫久久久| 亚洲综合色丁香婷婷六月图片| 日韩一卡二卡三卡| av一区二区三区四区| 日韩精品一级中文字幕精品视频免费观看 | 成人综合激情网| 午夜天堂影视香蕉久久| 欧美精品一区二区不卡| 色综合久久88色综合天天6| 免费在线观看日韩欧美| 中文字幕在线不卡一区| 日韩午夜在线播放| 91免费看`日韩一区二区| 麻豆精品国产91久久久久久| 国产精品久久三| 日韩欧美一区二区在线视频| 99re在线视频这里只有精品| 久久福利视频一区二区| 亚洲夂夂婷婷色拍ww47| 日本一区二区成人| 日韩精品一区二区在线| 欧美亚洲一区二区在线| 成人黄色在线看| 国内精品自线一区二区三区视频| 亚洲午夜精品久久久久久久久| 国产日韩视频一区二区三区| 在线不卡的av| 91久久人澡人人添人人爽欧美| 国产精品一区二区无线| 男女男精品视频网| 亚洲成在人线免费| 亚洲欧美日韩一区二区三区在线观看| 日韩免费在线观看| 欧美日韩欧美一区二区| 在线看不卡av| 91免费小视频| 96av麻豆蜜桃一区二区| 丁香婷婷综合激情五月色| 精品中文字幕一区二区| 午夜影视日本亚洲欧洲精品| 亚洲黄色录像片| 亚洲女女做受ⅹxx高潮| 国产精品久久福利| 亚洲欧美在线观看| 久久精品一区二区三区四区| 欧美v国产在线一区二区三区| 欧美另类videos死尸| 欧美日韩在线一区二区| 欧美日韩综合不卡| 欧美三级电影在线观看| 国产日产欧美一区二区三区| 2019国产精品| 国产婷婷一区二区| 国产精品久久久久久久久免费桃花 | 国产在线看一区| 国产一区二区精品久久| 国产麻豆视频一区二区| 国产毛片精品视频| 高清不卡一区二区| 99精品视频一区二区三区| 91浏览器打开| 欧美日韩激情一区| 91精品国产一区二区三区蜜臀| 3d成人h动漫网站入口| 日韩精品一区二区三区视频| 亚洲精品在线三区| 中文字幕乱码一区二区免费| 亚洲欧洲三级电影| 亚洲伊人色欲综合网| 免费看精品久久片| 国产黑丝在线一区二区三区| av激情成人网| 欧美色老头old∨ideo| 777奇米四色成人影色区| 精品国产第一区二区三区观看体验 | 欧美视频一区在线| 欧美一区二区三级| 久久精品亚洲精品国产欧美| 国产精品久久影院| 亚洲成在人线免费| 国产原创一区二区| 91久久香蕉国产日韩欧美9色| 欧美日韩一区二区电影| 精品美女一区二区| 国产精品动漫网站| 亚洲成精国产精品女| 麻豆高清免费国产一区| 丰满放荡岳乱妇91ww| 在线观看一区二区视频| 欧美v国产在线一区二区三区| 国产精品久久久久婷婷二区次| 亚洲国产综合色| 国产成人av影院| 在线精品视频一区二区三四| 日韩午夜激情电影| 综合精品久久久| 美女视频黄久久| 91丨九色丨黑人外教| 日韩一区二区免费视频| 中文字幕一区二区日韩精品绯色| 日韩不卡一区二区| 不卡一区中文字幕| 精品剧情在线观看| 亚洲国产精品综合小说图片区| 久久精品国产免费看久久精品| 成人高清视频在线| 久久综合久久鬼色中文字| 亚洲靠逼com| 高清国产一区二区| 日韩亚洲欧美综合| 亚洲一区二区五区| 成人一级片在线观看| 日韩你懂的在线播放| 亚洲va国产天堂va久久en| 94-欧美-setu| 国产精品丝袜一区| 国产一区二区伦理| 日韩一区二区三区电影| 亚洲成人第一页| 一本色道综合亚洲| 国产精品人成在线观看免费| 久久精品国产网站| 国产精品久久久久一区二区三区共| 久久国产麻豆精品| 欧美日韩国产不卡| 亚洲va韩国va欧美va精品| 91国偷自产一区二区开放时间 | 国产精品久久一卡二卡| 国产成人午夜视频| 久久色在线视频| 狠狠狠色丁香婷婷综合激情| 91精品国产色综合久久不卡蜜臀 | 久久精品视频免费| 国产精品白丝jk白祙喷水网站 | 亚洲欧美色一区| 一本色道久久加勒比精品| 18欧美亚洲精品| 欧美在线你懂的|