亚洲欧美第一页_禁久久精品乱码_粉嫩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 頁
字號:
link splay(link h, Item item)  { Key v = key(item);    if (h == z) return NEW(item, z, z, 1);      if (less(v, key(h->item)))       {         if (hl == z) return NEW(item, z, h, h->N+1);        if (less(v, key(hl->item)))           { hll = splay(hll, item); h = rotR(h); }        else           { hlr = splay(hlr, item); hl = rotL(hl); }        return rotR(h);       }    else      {         if (hr == z) return NEW(item, h, z, h->N+1);        if (less(key(hr->item), v))           { hrr = splay(hrr, item); h = rotL(h); }        else           { hrl = splay(hrl, item); hr = rotR(hr); }        return rotL(h);      }  }void STinsert(Item item)  { head = splay(head, item); }-----link RBinsert(link h, Item item, int sw)  { Key v = key(item);    if (h == z) return NEW(item, z, z, 1, 1);      if ((hl->red) && (hr->red))       { h->red = 1; hl->red = 0; hr->red = 0; }    if (less(v, key(h->item)))       {         hl = RBinsert(hl, item, 0);         if (h->red && hl->red && sw) h = rotR(h);         if (hl->red && hll->red)           { h = rotR(h); h->red = 0; hr->red = 1; }      }    else      {         hr = RBinsert(hr, item, 1);         if (h->red && hr->red && !sw) h = rotL(h);         if (hr->red && hrr->red)           { h = rotL(h); h->red = 0; hl->red = 1; }      }    fixN(h); return h;  }void STinsert(Item item)  { head = RBinsert(head, item, 0); head->red = 0; }-----Item searchR(link t, Key v, int k)  {     if (eq(v, key(t->item))) return t->item;    if (less(v, key(t->next[k]->item)))       {         if (k == 0) return NULLitem;        return searchR(t, v, k-1);       }    return searchR(t->next[k], v, k);  }Item STsearch(Key v)  { return searchR(head, v, lgN); }-----typedef struct STnode* link;struct STnode { Item item; link* next; int sz; };static link head, z;static int N, lgN;link NEW(Item item, int k)        { int i; link x = malloc(sizeof *x);    x->next = malloc(k*sizeof(link));    x->item = item; x->sz = k;    for (i = 0; i < k; i++) x->next[i] = z;    return x;                           }                                   void STinit(int max)   {     N = 0; lgN = 0;     z = NEW(NULLitem, 0);     head = NEW(NULLitem, lgNmax);   }-----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 = key(x->item);     if (less(v, key(t->next[k]->item)))       {         if (k < x->sz)          { x->next[k] = t->next[k];             t->next[k] = x; }        if (k == 0) return;        insertR(t, x, k-1); return;      }    insertR(t->next[k], x, k);  }void STinsert(Key v)  { insertR(head, NEW(v, randX()), lgN); N++; }-----void deleteR(link t, Key v, int k)  { link x = t->next[k];    if (!less(key(x->item), v))       {         if (eq(v, key(x->item)))          { t->next[k] = x->next[k]; }        if (k == 0) { free(x); return; }        deleteR(t, v, k-1); return;      }    deleteR(t->next[k], v, k);  }void STdelete(Key v)  { deleteR(head, v, lgN); N--; }----------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;  }-----static link *heads, z;static int N, M;void STinit(int max)   { int i;    N = 0; M = max/5;    heads = malloc(M*sizeof(link));    z = NEW(NULLitem, NULL);    for (i = 0; i < M; i++) heads[i] = z;   }Item STsearch(Key v)  { return searchR(heads[hash(v, M)], v); }void STinsert(Item item)  { int i = hash(key(item), M);    heads[i] = NEW(item, heads[i]); N++; }void STdelete(Item item)  { int i = hash(key(item), M);    heads[i] = deleteR(heads[i], item); }-----#include <stdlib.h>#include "Item.h"#define null(A) (key(st[A]) == key(NULLitem))static int N, M;static Item *st;void STinit(int max)  { int i;     N = 0; M = 2*max;    st = malloc(M*sizeof(Item));    for (i = 0; i < M; i++) st[i] = NULLitem;   }int STcount() { return N; }void STinsert(Item item)  { Key v = key(item);    int i = hash(v, M);    while (!null(i)) i = (i+1) % M;    st[i] = item; N++;  }Item STsearch(Key v)  { int i = hash(v, M);    while (!null(i))      if eq(v, key(st[i])) return st[i];       else i = (i+1) % M;    return NULLitem;  }-----void STdelete(Item item)  { int j, i = hash(key(item), M); Item v;    while (!null(i))      if eq(key(item), key(st[i])) break;       else i = (i+1) % M;    if (null(i)) return;    st[i] = NULLitem; N--;    for (j = i+1; !null(j); j = (j+1) % M, N--)      { v = st[j]; st[j] = NULLitem; STinsert(v); }  }-----void STinsert(Item item)  { Key v = key(item);    int i = hash(v, M);    int k = hashtwo(v, M);    while (!null(i)) i = (i+k) % M;    st[i] = item; N++;  }Item STsearch(Key v)  { int i = hash(v, M);    int k = hashtwo(v, M);    while (!null(i))      if eq(v, key(st[i])) return st[i];       else i = (i+k) % M;    return NULLitem;  }-----void expand();void STinsert(Item item)  { Key v = key(item);    int i = hash(v, M);    while (!null(i)) i = (i+1) % M;    st[i] = item;     if (N++ > M/2) expand();  }void expand()  { int i; Item *t = st;    init(M+M);    for (i = 0; i < M/2; i++)       if (key(t[i]) != key(NULLitem))         STinsert(t[i]);     free(t);  }----------CHAPTER 15. Radix Search-----Item searchR(link h, Key v, int w)  { Key t = key(h->item);    if (h == z) return NULLitem;    if eq(v, t) return h->item;    if (digit(v, w) == 0)         return searchR(h->l, v, w+1);    else return searchR(h->r, v, w+1);  }Item STsearch(Key v)   { return searchR(head, v, 0); } -----#define leaf(A) ((h->l == z) && (h->r == z))Item searchR(link h, Key v, int w)  { Key t = key(h->item);    if (h == z) return NULLitem;    if (leaf(h))      return eq(v, t) ? h->item : NULLitem;    if (digit(v, w) == 0)         return searchR(h->l, v, w+1);    else return searchR(h->r, v, w+1);  }Item STsearch(Key v)   { return searchR(head, v, 0); } -----void STinit()  { head = (z = NEW(NULLitem, 0, 0, 0)); }link split(link p, link q, int w)  { link t = NEW(NULLitem, z, z, 2);    switch(digit(p->item, w)*2 + digit(q->item, w))      {        case 0: t->l = split(p, q, w+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, w+1); break;      }    return t;  }link insertR(link h, Item item, int w)  { Key v = key(item), t = key(h->item);    if (h == z) return NEW(item, z, z, 1);    if (leaf(h))      { return split(NEW(item, z, z, 1), h, w); }    if (digit(v, w) == 0)         h->l = insertR(h->l, item, w+1);    else h->r = insertR(h->r, item, w+1);    return h;  }void STinsert(Item item)  { head = insertR(head, item, 0); }-----Item searchR(link h, Key v, int w)  {     if (h->bit <= w) return h->item;    if (digit(v, h->bit) == 0)         return searchR(h->l, v, h->bit);    else return searchR(h->r, v, h->bit);  }Item STsearch(Key v)   { Item t = searchR(head->l, v, -1);     return eq(v, key(t)) ? t : NULLitem;   } -----void STinit()  { head = NEW(NULLitem, 0, 0, -1);     head->l = head; head->r = head; }link insertR(link h, Item item, int w, link p)  { link x; Key v = key(item);    if ((h->bit >= w) || (h->bit <= p->bit))      {         x = NEW(item, 0, 0, w);        x->l = digit(v, x->bit) ? h : x;        x->r = digit(v, x->bit) ? x : h;        return x;       }    if (digit(v, h->bit) == 0)         h->l = insertR(h->l, item, w, h);    else h->r = insertR(h->r, item, w, h);    return h;  }void STinsert(Item item)  { int i;    Key v = key(item);     Key t = key(searchR(head->l, v, -1));    if (v == t) return;    for (i = 0; digit(v, i) == digit(t, i); i++) ;    head->l = insertR(head->l, item, i, head);  }-----void sortR(link h, void (*visit)(Item), int w)  {     if (h->bit <= w) { visit(h->item); return; }    sortR(h->l, visit, h->bit);    sortR(h->r, visit, h->bit);  }void STsort(void (*visit)(Item))  { sortR(head->l, visit, -1); } -----typedef struct STnode *link;struct STnode { link next[R]; };static link head;void STinit() { head = NULL; }link NEW()  { int i;    link x = malloc(sizeof *x);     for (i = 0; i < R; i++) x->next[i] = NULL;    return x;  }Item searchR(link h, Key v, int w)  { int i = digit(v, w);    if (h == NULL) return NULLitem;    if (i == NULLdigit) return v;    return searchR(h->next[i], v, w+1);  }Item STsearch(Key v)   { return searchR(head, v, 0); } link insertR(link h, Item item, int w)  { Key v = key(item);    int i = digit(v, w);    if (h == NULL) h = NEW();    if (i == NULLdigit) return h;    h->next[i] = insertR(h->next[i], v, w+1);    return h;  }void STinsert(Item item)  { head = insertR(head, item, 0); N++; }-----typedef struct STnode* link;struct STnode { Item item; int d; link l, m, r; };static link head;void STinit() { head = NULL; }link NEW(int d)  { link x = malloc(sizeof *x);     x->d = d; x->l = NULL; x->m = NULL; x->r = NULL;    return x;  }Item searchR(link h, Key v, int w)  { int i = digit(v, w);    if (h == NULL) return NULLitem;     if (i == NULLdigit) return v;    if (i < h->d) return searchR(h->l, v, w);    if (i == h->d) return searchR(h->m, v, w+1);    if (i > h->d) return searchR(h->r, v, w);  }Item STsearch( Key v)  { return searchR(head, v, 0); }link insertR(link h, Item item, int w)  { Key v = key(item);    int i = digit(v, w);    if (h == NULL) h = NEW(i);     if (i == NULLdigit) return h;    if (i < h->d) h->l = insertR(h->l, v, w);    if (i == h->d) h->m = insertR(h->m, v, w+1);    if (i > h->d) h->r = insertR(h->r, v, w);    return h;  }void STinsert(Key key)  { head = insertR(head, key, 0); }-----char word[maxW];void matchR(link h, char *v, int i)  {     if (h == z) return;     if ((*v == '\0') && (h->d == '\0'))       { word[i] = h->d; printf("%s ", 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);  }void STmatch(char *v)  { matchR(head, v, 0); }-----#define internal(A) ((A->d) != NULLdigit)link NEWx(link h, int d)  { link x = malloc(sizeof *x);     x->item = NULLitem; x->d = d;    x->l = NULL; x->m = h; x->r = NULL;    return x;  }link split(link p, link q, int w)  { int pd = digit(p->item, w),         qd = digit(q->item, w);    link t = NEW(NULLitem, qd);    if (pd < qd) { t->m = q; t->l = NEWx(p, pd); }    if (pd == qd) { t->m = split(p, q, w+1); }    if (pd > qd) { t->m = q; t->r = NEWx(p, pd); }    return t;  }link insertR(link h, Item item, int w)  { Key v = key(item);    int i = digit(v, w);    if (h == NULL)       return NEWx(NEW(item, NULLdigit), i);    if (!internal(h))      return split(NEW(item, NULLdigit), h, w);     if (i < h->d) h->l = insertR(h->l, v, w);    if (i == h->d) h->m = insertR(h->m, v, w+1);    if (i > h->d) h->r = insertR(h->r, v, w);    return h;  }void STinsert(Key key)  { int i = digit(key, 0);    heads[i] = insertR(heads[i], key, 1);   }-----Item searchR(link h, Key v, int w)  { int i = digit(v, w);    if (h == NULL) return NULLitem;     if (internal(h))      {        if (i < h->d) return searchR(h->l, v, w);        if (i == h->d) return searchR(h->m, v, w+1);        if (i > h->d) return searchR(h->r, v, w);      }    if eq(v, key(h->item)) return h->item;    return NULLitem;  }Item STsearch(Key v)  { return searchR(heads[digit(v, 0)], v, 1); }-----typedef struct STnode* link;struct STnode { Item item; link l, m, r; };static link head;#define z NULLvoid STinit() { head = z; }link NEW(char *v)  { link x = malloc(sizeof *x);     x->item = v; x->l = z; x->m = z; x->r = z;    return x;  }Item searchR(link h, char *v)  { char *t;    if (h == z) return NULLitem;     if (*v == '\0') return h->item;    if (*v < *(h->item)) searchR(h->l, v);    if (*v > *(h->item)) searchR(h->r, v);    if (*v == *(h->item)) t = searchR(h->m, v+1);    return null(t) ? t : v;  }Item STsearch(char *v)  { char *t = searchR(head, v);     if (eq(v, t)) return t;    return NULLitem;  }link insertR(link h, char *v)  {     if (h == z) h = NEW(v);     if ((*v ==  *(h->item)) && (*v != '\0'))      h->m = insertR(h->m, v+1);    if (h == z) h = NEW(v);     if (*v < *(h->item)) h->l = insertR(h->l, v);    if (*v > *(h->item)) h->r = insertR(h->r, v);    return h;  }void STinsert(char *v)  { head = insertR(head, v); }----------CHAPTER 16. External Searching-----typedef struct STnode* link;typedef struct  { Key key; union { link next; Item item; } ref; } entry;struct STnode { entry b[M]; int m; };static link head;static int H, N; link NEW()  { link x = malloc(sizeof *x);     x->m = 0;    return x;   }void STinit(int maxN)   { head = NEW(); H = 0; N = 0; }-----Item searchR(link h, Key v, int H)  { int j;    if (H == 0)      for (j = 0; j < h->m; j++)        if (eq(v, h->b[j].key))           return h->b[j].ref.item;    if (H != 0)      for (j = 0; j < h->m; j++)        if ((j+1 == h->m) || less(v, h->b[j+1].key))          return searchR(h->b[j].ref.next, v, H-1);    return NULLitem;  }Item STsearch(Key v)  { return searchR(head, v, H); }-----link insertR(link h, Item item, int H)  { int i, j; Key v = key(item); entry x; link u;    x.key = v; x.ref.item = item;    if (H == 0)      for (j = 0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕乱码日本亚洲一区二区| 91麻豆精品国产| 久久精品免费观看| 一区二区三区国产| 国产精品乱人伦一区二区| 欧美电影免费观看高清完整版| 欧美日韩精品专区| 欧美日韩国产高清一区二区三区 | 激情五月婷婷综合网| 图片区小说区区亚洲影院| 亚洲精品伦理在线| 亚洲制服丝袜av| 亚洲国产精品一区二区久久| 日韩欧美在线123| 91福利小视频| 色88888久久久久久影院按摩| 成人黄色一级视频| 成a人片亚洲日本久久| 成人精品鲁一区一区二区| 国产成人aaaa| av欧美精品.com| 色菇凉天天综合网| 欧美色综合网站| 欧美日韩五月天| 欧美日韩国产天堂| 日韩欧美精品三级| 国产婷婷精品av在线| 国产精品免费网站在线观看| 一区视频在线播放| 午夜国产不卡在线观看视频| 日韩制服丝袜av| 国产精品一区一区三区| av电影一区二区| 欧美日韩夫妻久久| 国产亚洲欧美在线| 亚洲日穴在线视频| 日本欧美肥老太交大片| 国产精品18久久久久久久久| 99精品国产热久久91蜜凸| 欧美日韩一级视频| 久久久久国产成人精品亚洲午夜| 一区在线观看视频| 秋霞国产午夜精品免费视频| 国产河南妇女毛片精品久久久 | 自拍偷拍国产亚洲| 奇米综合一区二区三区精品视频| 国产精品自产自拍| 欧美日韩在线观看一区二区| 亚洲精品一线二线三线| 一区二区三区国产精华| 国模无码大尺度一区二区三区| 不卡视频在线观看| 欧美日韩中文一区| 日韩女优毛片在线| 一区二区三区欧美在线观看| 久久疯狂做爰流白浆xx| 91久久线看在观草草青青 | 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品乱码人人做人人爱 | 国产欧美视频一区二区| 亚洲高清视频中文字幕| 成人av免费在线观看| 精品免费国产一区二区三区四区| 中文字幕一区免费在线观看| 日本在线不卡视频| 粉嫩高潮美女一区二区三区| 欧美一级理论片| 亚洲日本一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 国产真实乱偷精品视频免| 欧美日韩和欧美的一区二区| 91精品国产福利在线观看 | 欧美日韩不卡在线| 日本一区二区综合亚洲| 午夜精品久久久久久久久久| 风间由美一区二区av101| 懂色av中文字幕一区二区三区| 欧美日本在线看| 国产欧美精品一区二区三区四区| 亚洲国产日日夜夜| 99这里只有精品| 久久综合色鬼综合色| 亚洲在线视频免费观看| av一区二区三区在线| 国产日韩欧美精品综合| 美女视频网站久久| 欧美片在线播放| 亚洲一区二区中文在线| 91视频你懂的| 国产精品午夜在线| 麻豆免费精品视频| 欧美精品一区二区在线播放| 五月天一区二区三区| 欧美性大战xxxxx久久久| 最新不卡av在线| 欧美国产日韩a欧美在线观看| 日本伊人精品一区二区三区观看方式 | 国产在线精品免费| 在线成人免费观看| 天天av天天翘天天综合网 | 亚洲色图视频网站| 99久久久久久| 中文字幕综合网| 91免费国产视频网站| 亚洲精品高清视频在线观看| 成人av网站免费| 国产精品久久一级| 99久久精品一区二区| 椎名由奈av一区二区三区| 91麻豆免费视频| 一区二区三区在线免费观看| 色94色欧美sute亚洲13| 国产精品毛片高清在线完整版| 久久久久久久av麻豆果冻| 日本一区二区综合亚洲| 毛片av一区二区| 欧美成人aa大片| 国产成人精品www牛牛影视| 欧美高清一级片在线观看| 粉嫩一区二区三区性色av| 久久久精品免费免费| 国产成人精品亚洲777人妖| 中文字幕一区二区三区不卡 | 中文一区一区三区高中清不卡| 色噜噜狠狠成人中文综合| 亚洲福利视频三区| 欧美白人最猛性xxxxx69交| 国产剧情一区二区三区| 亚洲天堂网中文字| 欧美精品久久一区| 国产精品自拍av| 亚洲精品ww久久久久久p站| 黑人精品欧美一区二区蜜桃| 国产激情91久久精品导航| 国产精品免费视频网站| 99热99精品| 国产精品一区二区免费不卡| 亚洲日本欧美天堂| 欧美tickling网站挠脚心| 成人av小说网| 日韩中文字幕亚洲一区二区va在线| 日韩精品在线一区| a级高清视频欧美日韩| 一区二区三区成人在线视频| 久久精品一二三| 在线综合视频播放| 99免费精品视频| 美国十次了思思久久精品导航| 欧美激情一区二区三区不卡| 欧美片在线播放| 91色婷婷久久久久合中文| 久久疯狂做爰流白浆xx| 天天操天天色综合| 亚洲欧美福利一区二区| 久久久久久久久免费| 欧美色图激情小说| 成人av免费网站| 国产乱人伦精品一区二区在线观看| 一区二区三区中文在线| 国产欧美日本一区视频| 久久婷婷色综合| 精品久久久久av影院| 欧美男生操女生| 91豆麻精品91久久久久久| 成人av免费在线| 国产精品一区二区三区乱码| 亚洲蜜桃精久久久久久久| 国产欧美va欧美不卡在线| 精品日韩欧美在线| 日韩一区二区免费电影| 欧美精品99久久久**| 在线免费一区三区| 色乱码一区二区三区88| 不卡视频一二三| 国产精品一级在线| 国产精品一级片在线观看| 经典三级视频一区| 久久精品国产99| 久久国产精品区| 久久狠狠亚洲综合| 久久精品999| 亚洲一区二区欧美日韩| 琪琪久久久久日韩精品| 日本午夜精品视频在线观看| 奇米一区二区三区| 免费国产亚洲视频| 精品一区二区三区在线观看国产 | 精品av综合导航| 国产亚洲欧洲一区高清在线观看| 精品99一区二区三区| 国产丝袜美腿一区二区三区| 欧美高清在线视频| 亚洲三级在线观看| 亚洲二区视频在线| 免费成人结看片| 精品一区二区三区视频在线观看| 成人精品高清在线| 欧美亚洲一区二区在线| 9191成人精品久久| 久久久久国色av免费看影院|