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

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

?? treemap.java

?? 俄羅斯高人Mamaich的Pocket gcc編譯器(運行在PocketPC上)的全部源代碼。
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
    int overflow = count - rowsize;    Node parent = row;    int i;    for (i = 0; i < overflow; i += 2)      {        Node left = new Node(null, null, RED);        Node right = new Node(null, null, RED);        left.parent = parent;        right.parent = parent;        parent.left = left;        Node next = parent.right;        parent.right = right;        parent = next;      }    // Add a lone left node if necessary.    if (i - overflow == 0)      {        Node left = new Node(null, null, RED);        left.parent = parent;        parent.left = left;        parent = parent.right;        left.parent.right = nil;      }    // Unlink the remaining nodes of the previous row.    while (parent != nil)      {        Node next = parent.right;        parent.right = nil;        parent = next;      }  }  /**   * Returns the first sorted node in the map, or nil if empty. Package   * visible for use by nested classes.   *   * @return the first node   */  final Node firstNode()  {    // Exploit fact that nil.left == nil.    Node node = root;    while (node.left != nil)      node = node.left;    return node;  }  /**   * Return the TreeMap.Node associated with key, or the nil node if no such   * node exists in the tree. Package visible for use by nested classes.   *   * @param key the key to search for   * @return the node where the key is found, or nil   */  final Node getNode(Object key)  {    Node current = root;    while (current != nil)      {        int comparison = compare(key, current.key);        if (comparison > 0)          current = current.right;        else if (comparison < 0)          current = current.left;        else          return current;      }    return current;  }  /**   * Find the "highest" node which is &lt; key. If key is nil, return last   * node. Package visible for use by nested classes.   *   * @param key the upper bound, exclusive   * @return the previous node   */  final Node highestLessThan(Object key)  {    if (key == nil)      return lastNode();    Node last = nil;    Node current = root;    int comparison = 0;    while (current != nil)      {        last = current;        comparison = compare(key, current.key);        if (comparison > 0)          current = current.right;        else if (comparison < 0)          current = current.left;        else // Exact match.          return predecessor(last);      }    return comparison <= 0 ? predecessor(last) : last;  }  /**   * Maintain red-black balance after inserting a new node.   *   * @param n the newly inserted node   */  private void insertFixup(Node n)  {    // Only need to rebalance when parent is a RED node, and while at least    // 2 levels deep into the tree (ie: node has a grandparent). Remember    // that nil.color == BLACK.    while (n.parent.color == RED && n.parent.parent != nil)      {        if (n.parent == n.parent.parent.left)          {            Node uncle = n.parent.parent.right;            // Uncle may be nil, in which case it is BLACK.            if (uncle.color == RED)              {                // Case 1. Uncle is RED: Change colors of parent, uncle,                // and grandparent, and move n to grandparent.                n.parent.color = BLACK;                uncle.color = BLACK;                uncle.parent.color = RED;                n = uncle.parent;              }            else              {                if (n == n.parent.right)                  {                    // Case 2. Uncle is BLACK and x is right child.                    // Move n to parent, and rotate n left.                    n = n.parent;                    rotateLeft(n);                  }                // Case 3. Uncle is BLACK and x is left child.                // Recolor parent, grandparent, and rotate grandparent right.                n.parent.color = BLACK;                n.parent.parent.color = RED;                rotateRight(n.parent.parent);              }          }        else          {            // Mirror image of above code.            Node uncle = n.parent.parent.left;            // Uncle may be nil, in which case it is BLACK.            if (uncle.color == RED)              {                // Case 1. Uncle is RED: Change colors of parent, uncle,                // and grandparent, and move n to grandparent.                n.parent.color = BLACK;                uncle.color = BLACK;                uncle.parent.color = RED;                n = uncle.parent;              }            else              {                if (n == n.parent.left)                {                    // Case 2. Uncle is BLACK and x is left child.                    // Move n to parent, and rotate n right.                    n = n.parent;                    rotateRight(n);                  }                // Case 3. Uncle is BLACK and x is right child.                // Recolor parent, grandparent, and rotate grandparent left.                n.parent.color = BLACK;                n.parent.parent.color = RED;                rotateLeft(n.parent.parent);              }          }      }    root.color = BLACK;  }  /**   * Returns the last sorted node in the map, or nil if empty.   *   * @return the last node   */  private Node lastNode()  {    // Exploit fact that nil.right == nil.    Node node = root;    while (node.right != nil)      node = node.right;    return node;  }  /**   * Find the "lowest" node which is &gt;= key. If key is nil, return either   * nil or the first node, depending on the parameter first.   * Package visible for use by nested classes.   *   * @param key the lower bound, inclusive   * @param first true to return the first element instead of nil for nil key   * @return the next node   */  final Node lowestGreaterThan(Object key, boolean first)  {    if (key == nil)      return first ? firstNode() : nil;    Node last = nil;    Node current = root;    int comparison = 0;    while (current != nil)      {        last = current;        comparison = compare(key, current.key);        if (comparison > 0)          current = current.right;        else if (comparison < 0)          current = current.left;        else          return current;      }    return comparison > 0 ? successor(last) : last;  }  /**   * Return the node preceding the given one, or nil if there isn't one.   *   * @param node the current node, not nil   * @return the prior node in sorted order   */  private Node predecessor(Node node)  {    if (node.left != nil)      {        node = node.left;        while (node.right != nil)          node = node.right;        return node;      }    Node parent = node.parent;    // Exploit fact that nil.left == nil and node is non-nil.    while (node == parent.left)      {        node = parent;        parent = node.parent;      }    return parent;  }  /**   * Construct a tree from sorted keys in linear time. Package visible for   * use by TreeSet.   *   * @param s the stream to read from   * @param count the number of keys to read   * @param readValue true to read values, false to insert "" as the value   * @throws ClassNotFoundException if the underlying stream fails   * @throws IOException if the underlying stream fails   * @see #readObject(ObjectInputStream)   * @see TreeSet#readObject(ObjectInputStream)   */  final void putFromObjStream(ObjectInputStream s, int count,                              boolean readValues)    throws IOException, ClassNotFoundException  {    fabricateTree(count);    Node node = firstNode();    while (--count >= 0)      {        node.key = s.readObject();        node.value = readValues ? s.readObject() : "";        node = successor(node);      }  }  /**   * Construct a tree from sorted keys in linear time, with values of "".   * Package visible for use by TreeSet.   *   * @param keys the iterator over the sorted keys   * @param count the number of nodes to insert   * @see TreeSet#TreeSet(SortedSet)   */  final void putKeysLinear(Iterator keys, int count)  {    fabricateTree(count);    Node node = firstNode();    while (--count >= 0)      {        node.key = keys.next();        node.value = "";        node = successor(node);      }  }  /**   * Deserializes this object from the given stream.   *   * @param s the stream to read from   * @throws ClassNotFoundException if the underlying stream fails   * @throws IOException if the underlying stream fails   * @serialData the <i>size</i> (int), followed by key (Object) and value   *             (Object) pairs in sorted order   */  private void readObject(ObjectInputStream s)    throws IOException, ClassNotFoundException  {    s.defaultReadObject();    int size = s.readInt();    putFromObjStream(s, size, true);  }  /**   * Remove node from tree. This will increment modCount and decrement size.   * Node must exist in the tree. Package visible for use by nested classes.   *   * @param node the node to remove   */  final void removeNode(Node node)  {    Node splice;    Node child;    modCount++;    size--;    // Find splice, the node at the position to actually remove from the tree.    if (node.left == nil)      {        // Node to be deleted has 0 or 1 children.        splice = node;        child = node.right;      }    else if (node.right == nil)      {        // Node to be deleted has 1 child.        splice = node;        child = node.left;      }    else      {        // Node has 2 children. Splice is node's predecessor, and we swap        // its contents into node.        splice = node.left;        while (splice.right != nil)          splice = splice.right;        child = splice.left;        node.key = splice.key;        node.value = splice.value;      }    // Unlink splice from the tree.    Node parent = splice.parent;    if (child != nil)      child.parent = parent;    if (parent == nil)      {        // Special case for 0 or 1 node remaining.        root = child;        return;      }    if (splice == parent.left)      parent.left = child;    else      parent.right = child;    if (splice.color == BLACK)      deleteFixup(child, parent);  }  /**   * Rotate node n to the left.   *   * @param node the node to rotate   */  private void rotateLeft(Node node)  {    Node child = node.right;    // if (node == nil || child == nil)    //   throw new InternalError();    // Establish node.right link.    node.right = child.left;    if (child.left != nil)      child.left.parent = node;    // Establish child->parent link.    child.parent = node.parent;    if (node.parent != nil)      {        if (node == node.parent.left)          node.parent.left = child;        else          node.parent.right = child;      }    else      root = child;    // Link n and child.    child.left = node;    node.parent = child;  }  /**   * Rotate node n to the right.   *   * @param node the node to rotate   */  private void rotateRight(Node node)  {    Node child = node.left;    // if (node == nil || child == nil)    //   throw new InternalError();    // Establish node.left link.    node.left = child.right;    if (child.right != nil)      child.right.parent = node;    // Establish child->parent link.    child.parent = node.parent;    if (node.parent != nil)      {        if (node == node.parent.right)          node.parent.right = child;        else          node.parent.left = child;      }    else      root = child;    // Link n and child.    child.right = node;    node.parent = child;  }  /**   * Return the node following the given one, or nil if there isn't one.   * Package visible for use by nested classes.   *   * @param node the current node, not nil   * @return the next node in sorted order   */  final Node successor(Node node)  {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产制服丝袜一区| 午夜精品视频一区| 国产成人在线网站| 日本一区二区三区在线不卡| 国产69精品久久777的优势| 国产精品久久久久一区| 色呦呦网站一区| 亚洲国产综合色| 欧美一区二区三区四区五区| 国内精品伊人久久久久av影院| 精品国产乱码久久久久久夜甘婷婷 | 色婷婷激情综合| 亚洲午夜av在线| 日韩欧美国产系列| 成人av在线看| 全国精品久久少妇| 中文字幕第一区综合| 欧美亚洲综合在线| 国内精品伊人久久久久av一坑| 国产精品久线在线观看| 欧美日产在线观看| 国产精品一区专区| 亚洲精品国产无天堂网2021| 日韩欧美另类在线| 99视频精品在线| 美女脱光内衣内裤视频久久网站| 毛片av一区二区三区| 国产精品国产三级国产aⅴ原创| 欧美亚男人的天堂| 国产乱人伦偷精品视频免下载| 亚洲品质自拍视频| 精品国产一区二区三区四区四| www.在线欧美| 另类小说色综合网站| 亚洲欧美国产77777| 日韩三级av在线播放| 91网站在线播放| 国产乱一区二区| 日韩精品一卡二卡三卡四卡无卡| 国产精品美女久久久久久久久久久| 欧美美女喷水视频| 色拍拍在线精品视频8848| 国产一二三精品| 日韩中文字幕av电影| 亚洲天堂精品在线观看| 精品久久人人做人人爽| 欧美日韩午夜在线视频| 972aa.com艺术欧美| 国产米奇在线777精品观看| 性久久久久久久| 夜夜揉揉日日人人青青一国产精品| 国产天堂亚洲国产碰碰| 日韩视频一区二区三区在线播放 | 欧美色图激情小说| 91在线码无精品| 国产成人啪免费观看软件 | 久久99精品久久久久久动态图 | 欧美日韩一级大片网址| 色综合色综合色综合 | 一区二区三区小说| 成人欧美一区二区三区黑人麻豆| 久久蜜桃香蕉精品一区二区三区| 日韩写真欧美这视频| 欧美日韩久久久久久| 欧美亚洲一区二区在线观看| 91老师国产黑色丝袜在线| 成人av网址在线| 粉嫩aⅴ一区二区三区四区| 国产剧情一区二区三区| 狠狠色丁香婷婷综合| 久草中文综合在线| 激情图片小说一区| 国产精品一区二区久激情瑜伽| 黑人精品欧美一区二区蜜桃| 黄网站免费久久| 9191成人精品久久| 91麻豆精品国产自产在线观看一区 | 国产精品综合网| 国产成人精品免费看| 成人性生交大片免费看中文 | 日本91福利区| 激情久久五月天| 国产91精品露脸国语对白| 成人午夜视频在线| 99久久99久久免费精品蜜臀| 91首页免费视频| 欧美吻胸吃奶大尺度电影| 欧美三级视频在线观看| 欧美精品xxxxbbbb| www国产成人| 欧美精彩视频一区二区三区| 中文字幕一区二区三| 一区二区三区四区高清精品免费观看| 亚洲线精品一区二区三区| 人禽交欧美网站| 国产成人午夜精品影院观看视频 | 亚洲国产美女搞黄色| 日韩高清中文字幕一区| 国产真实乱子伦精品视频| 国产91精品一区二区麻豆网站| 91在线观看成人| 欧美一区欧美二区| 国产精品污污网站在线观看| 亚洲欧洲日本在线| 热久久免费视频| 国产91清纯白嫩初高中在线观看| 91福利视频久久久久| 日韩区在线观看| 专区另类欧美日韩| 免费欧美在线视频| 成人福利视频在线看| 欧美日韩一区二区在线观看| 2019国产精品| 亚洲一区免费视频| 国产精品一区在线观看你懂的| 欧洲一区二区三区在线| 久久久久免费观看| 亚洲成av人片一区二区三区| 国产寡妇亲子伦一区二区| 91国产成人在线| 国产午夜亚洲精品理论片色戒| 亚洲影院免费观看| 成人激情午夜影院| 欧美电影一区二区三区| 国产精品私人影院| 久久99在线观看| 欧美色大人视频| 国产精品久久久久精k8| 精品一区二区三区日韩| 欧美性猛交xxxxxxxx| 中文字幕第一区二区| 久久aⅴ国产欧美74aaa| 欧美日韩三级一区| 国产精品久久久久国产精品日日| 久久国产精品色婷婷| 欧美日韩免费观看一区二区三区| 国产精品三级电影| 国精品**一区二区三区在线蜜桃| 欧美性大战久久久久久久| 国产精品嫩草影院com| 久久99精品久久久| 欧美一区二区三区免费视频| 亚洲精品日韩一| 波多野结衣亚洲| 国产日产欧产精品推荐色 | 一区二区三区四区av| zzijzzij亚洲日本少妇熟睡| 国产亚洲成年网址在线观看| 麻豆一区二区三| 日韩一区和二区| 亚洲成av人片在线| 欧美日韩午夜精品| 一区二区三区国产精品| 91猫先生在线| 亚洲美女视频在线观看| 91丨九色丨尤物| 自拍偷拍国产精品| 色综合天天综合| 亚洲欧美日韩国产一区二区三区 | 亚洲国产精品一区二区久久| 色成年激情久久综合| 亚洲日本一区二区| 一本一道久久a久久精品| 最新欧美精品一区二区三区| www.欧美色图| 中文字幕欧美一区| 97aⅴ精品视频一二三区| 综合色中文字幕| 色综合久久综合网| 亚洲另类春色国产| 欧美亚洲高清一区二区三区不卡| 亚洲午夜在线视频| 欧美日韩国产大片| 日韩av一区二区三区四区| 欧美一区二区三区在| 韩国欧美国产一区| 国产精品美日韩| 91视频一区二区三区| 亚洲综合小说图片| 欧美日韩精品一区二区在线播放| 午夜欧美2019年伦理| 日韩欧美亚洲另类制服综合在线| 韩国视频一区二区| 国产精品不卡一区| 欧美日韩国产综合久久| 日韩中文字幕一区二区三区| 欧美成人猛片aaaaaaa| 成人中文字幕合集| 亚洲一区在线观看免费观看电影高清| 4438亚洲最大| 国产精品456| 亚洲免费视频成人| 欧美一级在线视频| 成人国产亚洲欧美成人综合网 | 欧美精品欧美精品系列| 精品影视av免费| 日韩理论在线观看| 日韩一二三四区| 91香蕉视频污| 精品在线视频一区|