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

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

?? del_node.htm

?? 一個用Basic實現的B-Tree算法
?? HTM
字號:
<title>Commented source code for BTPDEL</title><h2>Commented source code for <tt>BTPDEL</tt></h2><pre>    C.BTPDEL001 SUBROUTINE BTPDEL(ROOT,SIZE,BFILE,DFILE,ID,ITEM)002 * Delete key from B-tree with nodes in following format:003 *   AMC 0:  Arbitrary node number.004 *   AMC 1:  Count of keys in node.005 *   AMC 2:  Keys, stored as a subvalue list.006 *   AMC 3:  (number of keys)+1 pointers to next nodes.007 *   AMC 4:  Pointer to parent node if any.008 CALL BTPKEY(ROOT,ID,ITEM,FINDKEY) ;* Get sort string for comparing to rest of tree009 READ NODE.ID FROM BFILE, ROOT ELSE STOP "No root"010 FOUND = 0 ;* Flopped true once key found in tree011 100 READ NODE FROM BFILE, NODE.ID ELSE STOP "Can't find node"012 LEFT = 0 ; RIGHT = NODE<1>+1 ;* Boundaries for binary search of keys in node013 IF (RIGHT=1) OR FOUND THEN NEXT.PTR=1 ; POS=1 ELSE ;* Not an empty root and not searching for adjacent key014   LOOP015     POS = INT((LEFT+RIGHT)/2) ;* Find position midway between boundaries016     COMPARE.ID = NODE<2,POS> ;* Get that key017     IF COMPARE.ID = ID THEN ;* Key is in node018       FOUND=1 ; OWNER.ID=NODE.ID ; OWNER.POS=POS ;* Remember so and where019       RIGHT=LEFT ; NEXT.PTR=POS+1 ;* Force loop stop, go right to find adjacent key020       END ELSE ;* These keys don't match021           NEXT.PTR = POS ;* If loop stops, go left next time022           READ COMPARE.ITEM FROM DFILE, COMPARE.ID ELSE STOP "Can't read"023           CALL BTPKEY(ROOT,COMPARE.ID,COMPARE.ITEM,KEY) ;* Convert COMPARE.ITEM to KEY for comparison024           IS.GREATER = (FINDKEY > KEY) ;* Is our key greater than node key?025           IF IS.GREATER THEN LEFT = POS ELSE RIGHT = POS ;* Adjust search boundaries026           END027   UNTIL (RIGHT-LEFT) <= 1 DO REPEAT028     IF NOT(FOUND) THEN ;* May have to adjust POS029       IF IS.GREATER THEN POS = RIGHT ; NEXT.PTR=POS ;* Else POS already OK030       END031   END032 NEXT.NODE.ID = NODE<3, NEXT.PTR> ;* Get id of next node033 IF NEXT.NODE.ID # "" THEN ;* There's another node, keep looking for leaf034   NODE.ID = NEXT.NODE.ID035   GO TO 100036   END037 IF NOT(FOUND) THEN CRT ID:" not present to delete" ; RETURN038 * Reached a leaf, is it also the one with the key?039 IF NODE<2, POS> # ID THEN ;* No, this leaf has the adjacent key040   READ OWNER.NODE FROM BFILE, OWNER.ID ELSE STOP "Can't reread"041   OWNER.NODE<2, OWNER.POS> = NODE<2,1> ;* Replace key found with adjacent key042   WRITE OWNER.NODE ON BFILE, OWNER.ID043   POS = 1 ;* So following delete will erase adjacent key from leaf044   END045 NODE = DELETE(NODE, 2, POS) ;* Erase the leaf key046 NODE<1> = NODE<1> - 1 ;* Reduce count of keys in node047 200 IF (NODE<1> < SIZE) AND (NODE<4> # "") THEN ;* Underflow, since too few keys in a non-root node048   PARENT.ID = NODE<4> ;* Get id of parent of underflowed node049   READ PARENT FROM BFILE, PARENT.ID ELSE STOP "Can't reread"050   LOCATE(NODE.ID, PARENT, 3; POS) ELSE STOP "Forgot"051   NEIGHBOR.ID = PARENT<3, POS+1> ; PARENT.POS = POS ;* Assume neighbor's on right052   NEIGHBOR.ON.LEFT = (NEIGHBOR.ID="") ;* Are we wrong?053   IF NEIGHBOR.ON.LEFT THEN NEIGHBOR.ID = PARENT<3, POS-1> ; PARENT.POS=POS-1 ;* Yes, try other side054   READ NEIGHBOR FROM BFILE, NEIGHBOR.ID ELSE STOP "Can't find"055   TOTAL.KEYS = NODE<1> + NEIGHBOR<1> ;* How many keys left in both nodes056   IF TOTAL.KEYS >= 2*SIZE THEN ;* Borrow some from neighbor by moving one at a time thru parent pos057     MOVE.COUNT = INT((NEIGHBOR<1>-NODE<1>)/2) ;* Qty to take058     FOR I = 1 TO MOVE.COUNT059       IF NEIGHBOR.ON.LEFT THEN ;* Taking from left node060         NEIGHBOR.POS = NEIGHBOR<1> ;* Where we take key from061         NODE.POS = 1 ;* Where we insert key after taking062         NEIGHBOR.PTR.POS = NEIGHBOR.POS+1 ;* Where we take the ptr, if any063         NODE.PTR.POS = NODE.POS ;* Where we insert the ptr after taking064         END ELSE ;* Taking from right node065             NODE.POS = NODE<1> + 1 ;* Where we insert key066             NEIGHBOR.POS = 1 ;* Where we take key067             NODE.PTR.POS = NODE.POS + 1 ;* Where we insert ptr068             NEIGHBOR.PTR.POS = NEIGHBOR.POS ;* Where we take ptr069             END070       NODE = INSERT(NODE,2,NODE.POS;PARENT<2,PARENT.POS>) ;* Move from parent to node071       NODE<1> = NODE<1>+1 ;* Increase count of keys in node072       PARENT<2,PARENT.POS> = NEIGHBOR<2,NEIGHBOR.POS> ;* Move from neighbor to parent073       NEIGHBOR = DELETE(NEIGHBOR,2,NEIGHBOR.POS) ;* Delete from neighbor074       NEIGHBOR<1> = NEIGHBOR<1>-1 ;* Decrease neighbor key count075       CHILD.ID = NEIGHBOR<3,NEIGHBOR.PTR.POS>076       IF CHILD.ID # "" THEN ;* Not a leaf077         NODE = INSERT(NODE,3,NODE.PTR.POS;CHILD.ID) ;* Move ptr too078         NEIGHBOR = DELETE(NEIGHBOR,3,NEIGHBOR.PTR.POS)079         READ CHILD FROM BFILE, CHILD.ID ELSE STOP "Can't find child"080         CHILD<4> = NODE.ID ;* Tell child about new parent081         WRITE CHILD ON BFILE, CHILD.ID082         END083     NEXT I084     WRITE NEIGHBOR ON BFILE, NEIGHBOR.ID085     WRITE PARENT ON BFILE, PARENT.ID086     WRITE NODE ON BFILE, NODE.ID087     END ELSE ;* Concatenate into neighbor088         IF NEIGHBOR.ON.LEFT THEN ;* Will be concatenating onto neighbor end089           INS.POS = NEIGHBOR<1>+1 ;* Where we insert into neighbor090           INS.PTR.POS = INS.POS+1 ;* Where ptrs are inserted into neighbor091           GET.POS = 1 ;* Where ptr for alongside moved parent comes from092           END ELSE ;* Will be inserting into front of neighbor093               INS.POS = 1 ;* Where keys are inserted into neighbor094               INS.PTR.POS = 1 ;* Where ptrs are inserted into neighbor095               GET.POS = NODE<1>+1 ;* Where first pointer comes from096               END097         NEIGHBOR = INSERT(NEIGHBOR,2,INS.POS;PARENT<2,PARENT.POS>) ;* Move parent into neighbor098         NOT.LEAF = (NEIGHBOR<3,1> # "") ;* At a leaf?099         IF NOT.LEAF THEN ;* No, move ptr too100           CHILD.ID = NODE<3,GET.POS>101           NEIGHBOR = INSERT(NEIGHBOR,3,INS.PTR.POS;CHILD.ID)102           READ CHILD FROM BFILE, CHILD.ID ELSE STOP "Can't find child"103           CHILD<4> = NEIGHBOR.ID ;* Tell child about new parent104           WRITE CHILD ON BFILE, CHILD.ID105           END106         IF NEIGHBOR.ON.LEFT THEN ;* Adjust so rest of inserts come after concated parent107           INS.POS = INS.POS+1 ; INS.PTR.POS = INS.PTR.POS+1108           END109         FOR I = NODE<1> TO 1 STEP -1110           NEIGHBOR = INSERT(NEIGHBOR,2,INS.POS;NODE<2,I>) ;* Concat key from node111           IF NOT.LEAF THEN ;* Concat ptr too112             IF NEIGHBOR.ON.LEFT THEN ;* Bring right hand ptr113               NODE.PTR.POS = I+1114               END ELSE NODE.PTR.POS = I ;* Bring left hand ptr115             CHILD.ID = NODE<3,NODE.PTR.POS>116             NEIGHBOR = INSERT(NEIGHBOR,3,INS.PTR.POS;CHILD.ID) ;* Concat ptr117             READ CHILD FROM BFILE, CHILD.ID ELSE STOP "Can't find child"118             CHILD<4> = NEIGHBOR.ID ;* Tell child about new parent119             WRITE CHILD ON BFILE, CHILD.ID120             END121         NEXT I122         NEIGHBOR<1> = NEIGHBOR<1> + NODE<1> + 1123         WRITE NEIGHBOR ON BFILE, NEIGHBOR.ID ;* May get written again below to clear parent124         DELETE BFILE, NODE.ID125         PARENT = DELETE(PARENT, 2, PARENT.POS)126         PARENT = DELETE(PARENT, 3, POS)127         PARENT<1> = PARENT<1>-1128         IF PARENT<1> <= 0 THEN ;* Descendants of root just got concated129           DELETE BFILE, PARENT.ID ;* Delete old empty root130           WRITE NEIGHBOR.ID ON BFILE, ROOT ;* Point to new root131           NEIGHBOR<4> = "" ;* Since now root, clear parent ptr132           WRITE NEIGHBOR ON BFILE, NEIGHBOR.ID133           END ELSE ;* Parent still has keys134               WRITE PARENT ON BFILE, PARENT.ID135               NODE = PARENT136               NODE.ID = PARENT.ID137               GO TO 200 ;* Check if parent underflowed138               END139         END140   END ELSE WRITE NODE ON BFILE, NODE.ID ;* No underflow141 RETURN142 END</pre><hr><A HREF="btp.html">B-TREE-P</A> copyright &copy 1987-1999 by <A HREF="/home/contact.html">Semaphore Corporation</A>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本亚洲三级在线| 婷婷久久综合九色综合绿巨人 | 91丨九色porny丨蝌蚪| 韩国欧美国产1区| 日本成人在线视频网站| 日韩不卡在线观看日韩不卡视频| 香蕉加勒比综合久久| 亚洲成人免费在线观看| 亚洲1区2区3区视频| 日本不卡在线视频| 久久99久久99精品免视看婷婷 | 久久久.com| 国产精品拍天天在线| 欧美韩日一区二区三区四区| 中文字幕一区二区三区四区不卡 | 午夜精品久久久久久久久久久| 亚洲国产一区二区在线播放| 日本一区中文字幕| 国产在线视视频有精品| 成人三级伦理片| 欧美午夜视频网站| 欧美成人精品1314www| 欧美极品美女视频| 亚洲午夜在线视频| 国内精品久久久久影院色| 粉嫩蜜臀av国产精品网站| 91久久精品网| 欧美一区二区三区在线| 国产日韩精品一区二区浪潮av| 亚洲人成在线播放网站岛国| 日韩av电影天堂| 顶级嫩模精品视频在线看| 日本韩国欧美在线| 欧美成人高清电影在线| 亚洲精品五月天| 极品少妇一区二区三区精品视频| 99久久久国产精品| 欧美一级搡bbbb搡bbbb| 自拍偷拍亚洲激情| 久久精品国产网站| 91精彩视频在线| 久久综合九色综合久久久精品综合| 成人欧美一区二区三区小说 | 色综合一个色综合| 欧美不卡123| 亚洲自拍另类综合| 国产a级毛片一区| 欧美精品xxxxbbbb| 亚洲人成精品久久久久| 国产麻豆成人精品| 欧美一区二区三区在线看| 亚洲男人都懂的| 成人一区二区三区在线观看 | 国产精品欧美精品| 捆绑紧缚一区二区三区视频| 在线观看免费成人| 中文字幕亚洲成人| 国产成人av网站| 欧美一级xxx| 日韩精品一区第一页| 在线欧美日韩国产| 亚洲视频免费看| 成人av免费在线| 国产亚洲1区2区3区| 精品在线视频一区| 精品三级av在线| 日本最新不卡在线| 欧美电影在哪看比较好| 亚洲成人7777| 欧美卡1卡2卡| 日韩电影一区二区三区| 欧美女孩性生活视频| 香蕉影视欧美成人| 欧美精品少妇一区二区三区| 亚洲成人在线免费| 91精品国产色综合久久不卡蜜臀| 日韩激情视频网站| 91精品国产综合久久久蜜臀粉嫩| 日日夜夜一区二区| 日韩欧美视频在线| 国产曰批免费观看久久久| 精品国内二区三区| 国内精品不卡在线| 国产色综合久久| av一本久道久久综合久久鬼色| 国产日韩欧美精品电影三级在线| 成人性生交大片免费看中文 | 韩国欧美国产1区| 国产网站一区二区三区| 国产.精品.日韩.另类.中文.在线.播放| 精品国产免费人成在线观看| 国产不卡在线播放| ...xxx性欧美| 欧美三级韩国三级日本三斤| 日本欧美肥老太交大片| 久久午夜国产精品| 99热99精品| 五月综合激情婷婷六月色窝| 精品日韩99亚洲| 成人av片在线观看| 亚洲国产欧美在线| 精品理论电影在线| 成人高清免费观看| 亚瑟在线精品视频| 国产亚洲女人久久久久毛片| 91亚洲国产成人精品一区二区三| 午夜久久久久久久久| 国产欧美一区二区精品性色| 在线观看日韩电影| 激情国产一区二区| 亚洲一区在线看| 精品成人一区二区三区| 在线视频国内自拍亚洲视频| 久久99国产精品免费| 综合久久久久综合| 欧美精品一区二区久久久| 色婷婷综合久久久| 国产又黄又大久久| 亚洲成a人在线观看| 欧美激情在线一区二区三区| 欧美三级韩国三级日本三斤| 国产九色sp调教91| 丝袜美腿亚洲一区| 亚洲美女少妇撒尿| 中文字幕乱码一区二区免费| 91麻豆精品91久久久久同性| 99精品热视频| 国产成人一级电影| 狂野欧美性猛交blacked| 一区二区三区资源| 国产欧美一区视频| 精品欧美乱码久久久久久| 欧美自拍丝袜亚洲| 成人黄色在线视频| 国产一区999| 久久精品国产亚洲一区二区三区| 亚洲国产欧美在线| 一二三四区精品视频| 综合久久一区二区三区| 国产精品天天摸av网| 精品国产免费一区二区三区四区| 欧美日本国产一区| 欧美亚洲综合久久| 91色乱码一区二区三区| 99久久免费精品高清特色大片| 国内外成人在线| 韩国一区二区在线观看| 精品一二线国产| 久久国产精品99久久久久久老狼| 婷婷综合久久一区二区三区| 亚洲成av人片观看| 亚洲国产欧美另类丝袜| 亚洲风情在线资源站| 亚洲v中文字幕| 日本欧美久久久久免费播放网| 日日摸夜夜添夜夜添亚洲女人| 午夜影视日本亚洲欧洲精品| 视频在线在亚洲| 美女精品自拍一二三四| 久久精品国产亚洲5555| 国产在线播精品第三| 岛国精品在线播放| 成人黄色国产精品网站大全在线免费观看 | 久久免费看少妇高潮| 久久久久久久久久久久久女国产乱| 久久久不卡网国产精品一区| 国产精品天美传媒沈樵| 一区二区在线观看视频在线观看| 一区二区三区久久| 人人超碰91尤物精品国产| 国产一区二区电影| 91亚洲男人天堂| 欧美日韩大陆一区二区| 日韩女优av电影在线观看| 欧美激情一区二区| 一区二区三区毛片| 理论片日本一区| 成人激情文学综合网| 欧美视频在线一区二区三区| 日韩一区二区在线播放| 欧美激情一区二区三区不卡| 亚洲主播在线观看| 国产在线视频精品一区| 99久久99精品久久久久久| 欧美久久久久久久久中文字幕| 精品国产91乱码一区二区三区| 日韩伦理免费电影| 麻豆传媒一区二区三区| av不卡一区二区三区| 91麻豆精品国产91久久久久 | 欧洲一区在线观看| 欧美大白屁股肥臀xxxxxx| 国产精品毛片久久久久久久| 免费观看在线色综合| 成人黄动漫网站免费app| 欧美高清视频在线高清观看mv色露露十八 | 亚洲一级电影视频| 激情av综合网| 欧美一级高清片在线观看| 亚洲免费观看高清完整版在线|