C#ʵÏÖƽºâ¶à·²éÕÒÊ÷£¨BÊ÷£©

·¢±íÓÚ£º2012-4-28 10:05

×ÖÌ壺´ó ÖРС | ÉÏһƪ | ÏÂһƪ | ÎÒҪͶ¸å

 ×÷ÕߣºËΛV½£    À´Ô´£º51TestingÈí¼þ²âÊÔÍø²É±à

·ÖÏí£º

¡¡¡¡´úÂë4.·ÖÁѽڵã

¡¡¡¡Í¨¹ý¸ÅÄîºÍ´úÂë²»ÄÑ¿´³ö£¬½ÚµãµÄ·ÖÁÑÏà¶Ô±È½ÏÏûºÄIO£¬ÕâÒ²ÊÇΪʲôSQL ServerÖÐÐèҪһЩ×î¼ÑʵÏÖ±ÈÈç²»ÓÃGUID×ö¾Û¼¯Ë÷Òý£¬»òÊÇÉèÖÃÌî³äÒò×ÓµÈÀ´¼õÉÙÒ³·ÖÁÑ¡£

¡¡¡¡¶øÈç¹ûÐèÒª²åÈëÔªËصĽڵ㲻Âú£¬Ôò²»ÐèÒªÒ³·ÖÁÑ£¬ÔòÐèÒª´Ó¸ù¿ªÊ¼²éÕÒ£¬ÕÒµ½ÐèÒª±»²åÈëµÄ½Úµã£¬Èç´úÂë5Ëùʾ¡£

  1. //ÔÚ½Úµã·ÇÂúʱѰÕÒ²åÈë½Úµã  
  2. public void BTreeInsertNotFull(TreeNode<T> Node, T KeyWord)  
  3. {  
  4.     int i=Node.elementNum;  
  5.     //Èç¹ûÊÇÒ¶×ӽڵ㣬ÔòÑ°ÕÒºÏÊʵÄλÖÃÖ±½Ó²åÈë  
  6.     if (Node.IsLeaf)  
  7.     {  
  8.           
  9.         while (i >= 1 && KeyWord.CompareTo(Node.Elements[i - 1]) < 0)  
  10.         {  
  11.             Node.Elements[i] = Node.Elements[i - 1];//ËùÓеÄÔªËغóÍÆһλ  
  12.             i -= 1;  
  13.         }  
  14.         Node.Elements[i - 1] = KeyWord;//½«¹Ø¼ü×Ö²åÈë½Úµã  
  15.         Node.elementNum += 1;  
  16.         //½«½ÚµãдÈë´ÅÅÌ£¬IOд+1  
  17.     }  
  18.     //Èç¹ûÊÇ·ÇÒ¶×Ó½Úµã  
  19.     else 
  20.     {  
  21.         while (i >= 1 && KeyWord.CompareTo(Node.Elements[i - 1]) < 0)  
  22.         {  
  23.             i -= 1;  
  24.         }  
  25.         //Õâ²½½«Ö¸ÕëËùÖ¸ÏòµÄ½Úµã¶ÁÈëÄÚ´æ,IO¶Á+1  
  26.         if (Node.Pointer[i].elementNum == NumPerNode)  
  27.         {  
  28.             //Èç¹û×Ó½ÚµãÒÑÂú£¬½øÐнڵã·ÖÁÑ  
  29.             BTreeSplitNode(Node, i, Node.Pointer[i]);  
  30.  
  31.         }  
  32.         if (KeyWord.CompareTo(Node.Elements[i - 1]) > 0)  
  33.         {  
  34.             //¸ù¾Ý¹Ø¼ü×ÖµÄÖµ¾ö¶¨²åÈë·ÖÁѺóµÄ×óº¢×Ó»¹ÊÇÓÒº¢×Ó  
  35.             i += 1;  
  36.         }  
  37.         //µü´úÕÒÒ¶×Ó£¬ÕÒµ½Ò¶×Ó½Úµãºó²åÈë  
  38.         BTreeInsertNotFull(Node.Pointer[i], KeyWord);  
  39.            
  40.  
  41.     }  
  42. }

¡¡¡¡´úÂë5.²åÈë

¡¡¡¡Í¨¹ý´úÂë5¿ÉÒÔ¿´³ö£¬ÎÒÃÇûÓнøÐÐÈκεü´ú¡£¶øÊÇ´Ó¸ù½Úµã¿ªÊ¼Óöµ½ÂúµÄ½ÚµãÖ±½Ó½øÐзÖÁÑ¡£´Ó¶ø¼õÉÙÁËÐÔÄÜËðʧ¡£

¡¡¡¡ÔÙ½«¸ù½Úµã·ÖÁѵÄÌØÊâÇé¿ö¿¼ÂǽøÈ¥£¬ÎÒÃÇ´Ó¶ø½«²åÈë²Ù×÷ºÏΪһ¸öº¯Êý£¬Èç´úÂë6Ëùʾ¡£

  1. public void BtreeInsert(T KeyWord)  
  2. {  
  3.     if (RootNode.elementNum == NumPerNode)  
  4.     {  
  5.  
  6.         //Èç¹û¸ù½ÚµãÂúÁË£¬Ôò¶Ô¸ú½Úµã½øÐзÖÁÑ  
  7.         TreeNode<T> newRoot = new TreeNode<T>();  
  8.         newRoot.elementNum = 0;  
  9.         newRoot.IsLeaf = false;  
  10.         //½«newRoot½Úµã±äΪ¸ù½Úµã  
  11.         BTreeSplitNode(newRoot, 1, RootNode);  
  12.         //·ÖÁѺó²åÈëиùµÄÊ÷  
  13.         BTreeInsertNotFull(newRoot, KeyWord);  
  14.         //½«Ê÷µÄ¸ù½øÐб任  
  15.         RootNode = newRoot;  
  16.     }  
  17.     else 
  18.     {  
  19.         //Èç¹û¸ù½ÚµãûÓÐÂú£¬Ö±½Ó²åÈë  
  20.         BTreeInsertNotFull(RootNode, KeyWord);  
  21.     }  
  22. }

54/5<12345>
¼ÛÖµ398ÔªµÄ²âÊԿγÌÃâ·ÑÔùËÍ£¬ÌîÎʾíÁìÈ¡°É£¡

¹Ø×¢51Testing

ÁªÏµÎÒÃÇ

¿ì½ÝÃæ°å Õ¾µãµØͼ ÁªÏµÎÒÃÇ ¹ã¸æ·þÎñ ¹ØÓÚÎÒÃÇ Õ¾³¤Í³¼Æ

·¨ÂɹËÎÊ£ºÉϺ£äîϪÂÉʦÊÂÎñËù ÏîÆåÂÉʦ
°æȨËùÓÐ ÉϺ£²©Îª·åÈí¼þ¼¼Êõ¹É·ÝÓÐÏÞ¹«Ë¾ Copyright©51testing.com 2003-2022
ͶËß¼°Òâ¼û·´À¡£ºwebmaster@51testing.com; ÒµÎñÁªÏµ£ºservice@51testing.com 021-64471599-8017

»¦ICP±¸05003035ºÅ

»¦¹«Íø°²±¸ 31010102002173ºÅ