锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲精品久久飘花,国产精品高潮呻吟久久av无限 ,欧美日韩久久精品http://m.shnenglu.com/lwch/category/14192.html銆怮Q:510134884銆戙愮紪璇戝師鐞嗕氦嫻佺兢:83905136銆戙怤Script欏圭洰緹?38843264銆戙怑mail:lwch4@163.com銆?/description>zh-cnTue, 22 Feb 2011 12:18:02 GMTTue, 22 Feb 2011 12:18:02 GMT60鍫嗙粨鏋勭殑瀹炵幇2http://m.shnenglu.com/lwch/archive/2011/02/22/140460.htmllwchlwchTue, 22 Feb 2011 09:29:00 GMThttp://m.shnenglu.com/lwch/archive/2011/02/22/140460.htmlhttp://m.shnenglu.com/lwch/comments/140460.htmlhttp://m.shnenglu.com/lwch/archive/2011/02/22/140460.html#Feedback0http://m.shnenglu.com/lwch/comments/commentRss/140460.htmlhttp://m.shnenglu.com/lwch/services/trackbacks/140460.html銆婄畝鍗曞爢緇撴瀯鐨勫疄鐜般?/a>涔嬪悗淇敼浜嗕笅浠g爜,浣垮唴瀛樼殑鍒嗛厤鏁堢巼鏇撮珮.
棣栧厛灝咹eapApplyed鍜孒eapUsed鍖呭惈榪涗竴涓粨鏋勪綋HEAPATTR,鍚勫崰1浣?
1     struct HEAPATTR
2     {
3         BYTE HeapApplyed : 1;
4         BYTE HeapUsed : 1;
5     }*HeapAttr;
鐒跺悗娣誨姞浜嗕竴涓狧eapCurrent鍙橀噺鐢ㄤ簬鎻愰珮媯绱㈤熷害.
1 int        HeapCurrent;
鐩稿簲鐨勬瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟淇敼涓?
 1     Heap(const int Size = 1024 * 300)
 2         : HeapLength(Size),HeapCurrent(0),HeapLeft(Size)
 3     {
 4         HeapData = new CHAR[HeapLength];
 5         HeapAttr = new HEAPATTR[HeapLength];
 6         memset(HeapData,0,HeapLength);
 7         memset(HeapAttr,0,HeapLength);
 8     }
 9 
10     ~Heap()
11     {
12         delete[] HeapData;
13         delete[] HeapAttr;
14     }
娉ㄦ剰:涓涓狧EAPATTR緇撴瀯鍗?涓瓧鑺?瀹為檯涓婁嬌鐢ㄧ殑鍙湁2浣?緙栬瘧鍣ㄨ嚜鍔ㄤ負鍏惰ˉ榻?浣嶅艦鎴?瀛楄妭(鏃㈢劧鍙湁TRUE鍜孎ALSE娌$悊鐢辮鐢℉eapLength*2瀛楄妭)
淇敼GetEmptyAddr綆楁硶,浣垮叾鎻愬崌鏁堢巼.
 1     CHAR* GetEmptyAddr(const int Size)
 2     {
 3         int Left = 0;
 4         for(int i=HeapCurrent;i<HeapLength;i++)
 5         {
 6             if(HeapAttr[i].HeapApplyed && !HeapAttr[i].HeapUsed) Left++;
 7             else Left = 0;
 8             if(Left == Size) return HeapData + i - Left + 1;
 9         }
10         if(HeapCurrent > 0 && HeapCurrent > Size)
11         {
12             Left = 0;
13             for(int i=0;i<HeapCurrent;i++)
14             {
15                 if(HeapAttr[i].HeapApplyed && !HeapAttr[i].HeapUsed) Left++;
16                 else Left = 0;
17                 if(Left == Size) return HeapData + i - Left + 1;
18             }
19         }
20         return 0;
21     }
鍚屾椂涔熷皢GetEmptyLeft淇敼涓?
 1     inline int GetEmptyLeft(int Size)
 2     {
 3         int Left = 0;
 4         for(int i=HeapCurrent;i<HeapLength;i++)
 5         {
 6             if(!HeapAttr[i].HeapApplyed) Left++;
 7             else Left = 0;
 8             if(Left == Size) return i - Left + 1;
 9         }
10         if(HeapCurrent > 0 && HeapCurrent > Size)
11         {
12             Left = 0;
13             for(int i=0;i<HeapCurrent;i++)
14             {
15                 if(!HeapAttr[i].HeapApplyed) Left++;
16                 else Left = 0;
17                 if(Left == Size) return i - Left + 1;
18             }
19         }
20         return 0;
21     }
娣誨姞DumpFile鍑芥暟鐢熸垚Dump鏂囦歡.
1     BOOL DumpFile(CHAR* FileName)
2     {
3         FILE* fp = fopen(FileName,"wt+");
4         fwrite(HeapData,HeapLength,sizeof(CHAR),fp);
5         fclose(fp);
6         return TRUE;
7     }

鏈鍚庣粰鍑?a href="http://m.shnenglu.com/Files/lwch/HeapTest_2.rar" target=_blank>瀹屾暣浠g爜

lwch 2011-02-22 17:29 鍙戣〃璇勮
]]>
綆鍗曠殑鍫嗙粨鏋勫疄鐜?/title><link>http://m.shnenglu.com/lwch/archive/2011/02/15/140115.html</link><dc:creator>lwch</dc:creator><author>lwch</author><pubDate>Tue, 15 Feb 2011 12:59:00 GMT</pubDate><guid>http://m.shnenglu.com/lwch/archive/2011/02/15/140115.html</guid><wfw:comment>http://m.shnenglu.com/lwch/comments/140115.html</wfw:comment><comments>http://m.shnenglu.com/lwch/archive/2011/02/15/140115.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/lwch/comments/commentRss/140115.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lwch/services/trackbacks/140115.html</trackback:ping><description><![CDATA[<p>鎴戜滑鐭ラ亾瀵逛簬涓涓暟鎹爢,鏈夌敵璇峰唴瀛樺潡,閲婃斁鍐呭瓨鍧楃瓑鎿嶄綔.</p> 搴旀鎴戜滑緇欏嚭3涓暟緇?鍒嗗埆涓哄唴瀛樺爢,鏍囪鏁扮粍,浣跨敤鏄惁鏁扮粍鍜屼竴涓彉閲忕敤浜庤〃紺哄唴瀛樺爢鍐呭墿浣欑┖闂存暟.<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span> <span style="COLOR: #000000">    CHAR HeapData[HEAP_LENGTH];<br></span><span style="COLOR: #008080">2</span> <span style="COLOR: #000000">    CHAR HeapApplyed[HEAP_LENGTH];<br></span><span style="COLOR: #008080">3</span> <span style="COLOR: #000000">    CHAR HeapUsed[HEAP_LENGTH];<br></span><span style="COLOR: #008080">4</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">5</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> HeapLeft;                            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鍓╀綑Heap澶у皬</span></div> 鍒濆鍖栨椂灝?涓暟緇勫叏閮ㄨ涓?.<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span> <span style="COLOR: #000000">        memset(HeapData,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,HEAP_LENGTH);<br></span><span style="COLOR: #008080">2</span> <span style="COLOR: #000000">        memset(HeapApplyed,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,HEAP_LENGTH);<br></span><span style="COLOR: #008080">3</span> <span style="COLOR: #000000">        memset(HeapUsed,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,HEAP_LENGTH);</span></div> 鐒跺悗鎴戜滑闇瑕佷竴涓狽ew鎿嶄綔鏉ョ敵璇蜂竴鍧楀皻鏈嬌鐢ㄧ殑鍐呭瓨鍧?<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">    CHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> New(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Size)<br></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(Size </span><span style="COLOR: #000000">></span><span style="COLOR: #000000"> HeapLeft) </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> HEAP_OVERFLOW;<br></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> iEmpty </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> GetEmptyLeft(Size);<br></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">        memset(HeapApplyed </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> iEmpty,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,Size); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 灝嗗唴瀛樺潡鏍囪</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">        HeapLeft </span><span style="COLOR: #000000">-=</span><span style="COLOR: #000000"> Size;<br></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> HeapData </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> iEmpty;<br></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">    }</span></div> 涓涓狥ree鎿嶄綔鏉ラ噴鏀句竴涓唴瀛樺潡.<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span> <span style="COLOR: #000000">    BOOL Free(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Offset,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Size)<br></span><span style="COLOR: #008080">2</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080">3</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">Apply(Offset,Size)) </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> HEAP_NOTAPPLY;<br></span><span style="COLOR: #008080">4</span> <span style="COLOR: #000000">        memset(HeapApplyed </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> Offset,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,Size);    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 璁劇疆涓烘湭鏍囪</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">5</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">        memset(HeapUsed </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> Offset,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,Size);        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鏍囪涓烘湭浣跨敤</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">6</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">        HeapLeft </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> Size;<br></span><span style="COLOR: #008080">7</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> TRUE;<br></span><span style="COLOR: #008080">8</span> <span style="COLOR: #000000">    }</span></div> 涓涓狦etEmptyAddr鎿嶄綔鏉ヨ幏寰楃涓涓鍚堟寚瀹氬ぇ灝忕殑絀洪棽鍐呭瓨鍗″潡.<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">    CHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> GetEmptyAddr(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Size)<br></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">HEAP_LENGTH;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(HeapApplyed[i] </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">HeapUsed[i]) </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 宸叉爣璁板茍鏈嬌鐢?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">            {<br></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">                BOOL bContinue </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FALSE;<br></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">                </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;j</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">Size;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">                    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">HeapApplyed[j] </span><span style="COLOR: #000000">||</span><span style="COLOR: #000000"> HeapUsed[j]) </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鏈爣璁版垨宸蹭嬌鐢?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">                    {<br></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">                        bContinue </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> TRUE;<br></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">                        </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000">                    }<br></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000">                </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(bContinue) </span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000">                </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> HeapData </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> i;<br></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000">            }<br></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000">    }</span></div> 鍜屼竴涓猄etData鎿嶄綔鏉ヨ緗暟鎹?<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span> <span style="COLOR: #000000">    BOOL SetData(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Offset,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> Type</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> Data,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Size)<br></span><span style="COLOR: #008080">2</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080">3</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">Apply(Offset,Size)) </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> HEAP_NOTAPPLY;<br></span><span style="COLOR: #008080">4</span> <span style="COLOR: #000000">        memcpy(HeapData </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> Offset,Data,Size);    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鎷瘋礉鏁版嵁</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">5</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">        memset(HeapUsed </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> Offset,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,Size);        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鏍囪涓哄凡浣跨敤</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">6</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> TRUE;<br></span><span style="COLOR: #008080">7</span> <span style="COLOR: #000000">    }</span></div> 鏈鍚庢垜浠潵嫻嬭瘯涓涓嬭繖涓爢緇撴瀯.<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000">        Heap</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">CHAR</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"> heap;<br></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000">        heap.New(</span><span style="COLOR: #000000">9000</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">        heap.Free(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">        printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">EmptyAddr:%X\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,heap.GetEmptyAddr(</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)));<br></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> Addr1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)heap.GetEmptyAddr(</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">        heap.SetData((CHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)Addr1 </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">heap,(CHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">i,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000">        printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">The Data In Heap:%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">Addr1);<br></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000">        heap.New(</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000">        printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">EmptyAddr:%X\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,heap.GetEmptyAddr(</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)));<br></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">18</span> <span style="COLOR: #000000">        CHAR str[] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">aaaaa</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">19</span> <span style="COLOR: #000000">        CHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> Addr2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> heap.GetEmptyAddr(strlen(str));<br></span><span style="COLOR: #008080">20</span> <span style="COLOR: #000000">        heap.SetData(Addr2 </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">heap,str,strlen(str));<br></span><span style="COLOR: #008080">21</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">22</span> <span style="COLOR: #000000">        printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">The Data In Heap:%s\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,Addr2);<br></span><span style="COLOR: #008080">23</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">24</span> <span style="COLOR: #000000">        printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">EmptyAddr:%X\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,heap.GetEmptyAddr(</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)));<br></span><span style="COLOR: #008080">25</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080">26</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i)<br></span><span style="COLOR: #008080">27</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080">28</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">switch</span><span style="COLOR: #000000">(i)<br></span><span style="COLOR: #008080">29</span> <span style="COLOR: #000000">        {<br></span><span style="COLOR: #008080">30</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> HEAP_OVERFLOW:<br></span><span style="COLOR: #008080">31</span> <span style="COLOR: #000000">            printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">鍫嗘孩鍑篭n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">32</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">33</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> HEAP_NOTAPPLY:<br></span><span style="COLOR: #008080">34</span> <span style="COLOR: #000000">            printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">閿欒鐨勫湴鍧\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">35</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">36</span> <span style="COLOR: #000000">        }<br></span><span style="COLOR: #008080">37</span> <span style="COLOR: #000000">    }</span></div> 嫻嬭瘯緇撴灉:<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span> <span style="COLOR: #000000">EmptyAddr:4EFB0<br></span><span style="COLOR: #008080">2</span> <span style="COLOR: #000000">The Data In Heap:</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">3</span> <span style="COLOR: #000000">EmptyAddr:4EF4C<br></span><span style="COLOR: #008080">4</span> <span style="COLOR: #000000">The Data In Heap:aaaaa<br></span><span style="COLOR: #008080">5</span> <span style="COLOR: #000000">EmptyAddr:4EF51</span></div> <br>涓嬮潰緇欏嚭<a href="http://m.shnenglu.com/Files/lwch/HeapTest.rar">瀹屾暣浠g爜</a><img src ="http://m.shnenglu.com/lwch/aggbug/140115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lwch/" target="_blank">lwch</a> 2011-02-15 20:59 <a href="http://m.shnenglu.com/lwch/archive/2011/02/15/140115.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綆鍗曠殑Hash琛ㄥ疄鐜?/title><link>http://m.shnenglu.com/lwch/archive/2010/08/10/122997.html</link><dc:creator>lwch</dc:creator><author>lwch</author><pubDate>Tue, 10 Aug 2010 15:37:00 GMT</pubDate><guid>http://m.shnenglu.com/lwch/archive/2010/08/10/122997.html</guid><wfw:comment>http://m.shnenglu.com/lwch/comments/122997.html</wfw:comment><comments>http://m.shnenglu.com/lwch/archive/2010/08/10/122997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lwch/comments/commentRss/122997.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lwch/services/trackbacks/122997.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">  1</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">  2</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">  3</span> <span style="COLOR: #000000">template </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">typename _Type</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">  4</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> HashTable<br></span><span style="COLOR: #008080">  5</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">  6</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">  7</span> <span style="COLOR: #000000">    HashTable(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Length)<br></span><span style="COLOR: #008080">  8</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080">  9</span> <span style="COLOR: #000000">        Element </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> _Type[Length];<br></span><span style="COLOR: #008080"> 10</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">Length;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080"> 11</span> <span style="COLOR: #000000">            Element[i] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 12</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Length </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Length;<br></span><span style="COLOR: #008080"> 13</span> <span style="COLOR: #000000">        Count </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 14</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 15</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 16</span> <span style="COLOR: #000000">    </span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">HashTable()<br></span><span style="COLOR: #008080"> 17</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 18</span> <span style="COLOR: #000000">        delete[] Element;<br></span><span style="COLOR: #008080"> 19</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 20</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 21</span> <span style="COLOR: #000000">    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Hash鍑芥暟</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 22</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Hash(_Type Data)<br></span><span style="COLOR: #008080"> 23</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 24</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> Data </span><span style="COLOR: #000000">%</span><span style="COLOR: #000000"> Length;<br></span><span style="COLOR: #008080"> 25</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 26</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 27</span> <span style="COLOR: #000000">    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鍐嶆暎鍒楁硶</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 28</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> ReHash(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Index,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Count)<br></span><span style="COLOR: #008080"> 29</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 30</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> (Index </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> Count) </span><span style="COLOR: #000000">%</span><span style="COLOR: #000000"> Length;<br></span><span style="COLOR: #008080"> 31</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 32</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 33</span> <span style="COLOR: #000000">    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鏌ユ壘鏌愪釜鍏冪礌鏄惁鍦ㄨ〃涓?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 34</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000"> SerachHash(_Type Data,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000"> Index)<br></span><span style="COLOR: #008080"> 35</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 36</span> <span style="COLOR: #000000">        Index </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Hash(Data);<br></span><span style="COLOR: #008080"> 37</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Count </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 38</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(Element[Index] </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> Element[Index] </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> Data)<br></span><span style="COLOR: #008080"> 39</span> <span style="COLOR: #000000">            Index </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> ReHash(Index,</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Count);<br></span><span style="COLOR: #008080"> 40</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> Data </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> Element[Index] </span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000"> : </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 41</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 42</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 43</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> SerachHash(_Type Data)<br></span><span style="COLOR: #008080"> 44</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 45</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Index </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 46</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(SerachHash(Data,Index)) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> Index;<br></span><span style="COLOR: #008080"> 47</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 48</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 49</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 50</span> <span style="COLOR: #000000">    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鎻掑叆鍏冪礌</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 51</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000"> InsertHash(_Type Data)<br></span><span style="COLOR: #008080"> 52</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 53</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Index </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 54</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(Count </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> Length </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">SerachHash(Data,Index))<br></span><span style="COLOR: #008080"> 55</span> <span style="COLOR: #000000">        {<br></span><span style="COLOR: #008080"> 56</span> <span style="COLOR: #000000">            Element[Index] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Data;<br></span><span style="COLOR: #008080"> 57</span> <span style="COLOR: #000000">            Count</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 58</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 59</span> <span style="COLOR: #000000">        }<br></span><span style="COLOR: #008080"> 60</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 61</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 62</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 63</span> <span style="COLOR: #000000">    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 璁劇疆Hash琛ㄩ暱搴?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 64</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> SetLength(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Length)<br></span><span style="COLOR: #008080"> 65</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 66</span> <span style="COLOR: #000000">        delete[] Element;<br></span><span style="COLOR: #008080"> 67</span> <span style="COLOR: #000000">        Element </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> _Type[Length];<br></span><span style="COLOR: #008080"> 68</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">Length;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080"> 69</span> <span style="COLOR: #000000">            Element[i] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 70</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Length </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Length;<br></span><span style="COLOR: #008080"> 71</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 72</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 73</span> <span style="COLOR: #000000">    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鍒犻櫎鏌愪釜鍏冪礌</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 74</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Remove(_Type Data)<br></span><span style="COLOR: #008080"> 75</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 76</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Index </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> SerachHash(Data);<br></span><span style="COLOR: #008080"> 77</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(Index </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080"> 78</span> <span style="COLOR: #000000">        {<br></span><span style="COLOR: #008080"> 79</span> <span style="COLOR: #000000">            Element[Index] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 80</span> <span style="COLOR: #000000">            Count</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 81</span> <span style="COLOR: #000000">        }<br></span><span style="COLOR: #008080"> 82</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 83</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 84</span> <span style="COLOR: #000000">    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鍒犻櫎鎵鏈夊厓绱?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 85</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> RemoveAll()<br></span><span style="COLOR: #008080"> 86</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 87</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">Length;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080"> 88</span> <span style="COLOR: #000000">            Element[i] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 89</span> <span style="COLOR: #000000">        Count </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 90</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 91</span> <span style="COLOR: #000000">    <br></span><span style="COLOR: #008080"> 92</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Print()<br></span><span style="COLOR: #008080"> 93</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 94</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">Length;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080"> 95</span> <span style="COLOR: #000000">            printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,Element[i]);<br></span><span style="COLOR: #008080"> 96</span> <span style="COLOR: #000000">        printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080"> 97</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080"> 98</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080"> 99</span> <span style="COLOR: #000000">    _Type</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> Element;        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Hash琛?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">100</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Length;                </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Hash琛ㄥぇ灝?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">101</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Count;                </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Hash琛ㄥ綋鍓嶅ぇ灝?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">102</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">};<br></span><span style="COLOR: #008080">103</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">104</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main()<br></span><span style="COLOR: #008080">105</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">106</span> <span style="COLOR: #000000">    HashTable</span><span style="COLOR: #000000"><</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"> H(</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">107</span> <span style="COLOR: #000000">    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hash Length(10) Test:\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">108</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Array[</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> {</span><span style="COLOR: #000000">49</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">65</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">97</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">49</span><span style="COLOR: #000000">};<br></span><span style="COLOR: #008080">109</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">110</span> <span style="COLOR: #000000">        printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,H.InsertHash(Array[i]));<br></span><span style="COLOR: #008080">111</span> <span style="COLOR: #000000">    H.Print();<br></span><span style="COLOR: #008080">112</span> <span style="COLOR: #000000">    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Find(97):%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,H.SerachHash(</span><span style="COLOR: #000000">97</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">113</span> <span style="COLOR: #000000">    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Find(49):%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,H.SerachHash(</span><span style="COLOR: #000000">49</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">114</span> <span style="COLOR: #000000">    H.RemoveAll();<br></span><span style="COLOR: #008080">115</span> <span style="COLOR: #000000">    H.SetLength(</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">116</span> <span style="COLOR: #000000">    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hash Length(30) Test:\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">117</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">118</span> <span style="COLOR: #000000">        printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,H.InsertHash(Array[i]));<br></span><span style="COLOR: #008080">119</span> <span style="COLOR: #000000">    H.Print();<br></span><span style="COLOR: #008080">120</span> <span style="COLOR: #000000">    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Find(97):%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,H.SerachHash(</span><span style="COLOR: #000000">97</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">121</span> <span style="COLOR: #000000">    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Find(49):%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,H.SerachHash(</span><span style="COLOR: #000000">49</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">122</span> <span style="COLOR: #000000">    system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">123</span> <span style="COLOR: #000000">}</span></div> <p><br>榪愯緇撴灉:<br><img height=438 alt="" src="http://m.shnenglu.com/images/cppblog_com/lwch/Hash.PNG" width=669 border=0><br><br>鐢變笂鍥懼彲鐭ョ粰瀹氱殑Hash琛ㄩ暱搴﹁秺闀胯秺涓嶅鏄撲駭鐢熷啿紿?鎬ц兘涔熷氨瓚婇珮. </p> <img src ="http://m.shnenglu.com/lwch/aggbug/122997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lwch/" target="_blank">lwch</a> 2010-08-10 23:37 <a href="http://m.shnenglu.com/lwch/archive/2010/08/10/122997.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏁版嵁緇撴瀯http://m.shnenglu.com/lwch/archive/2010/07/08/119656.htmllwchlwchWed, 07 Jul 2010 16:12:00 GMThttp://m.shnenglu.com/lwch/archive/2010/07/08/119656.htmlhttp://m.shnenglu.com/lwch/comments/119656.htmlhttp://m.shnenglu.com/lwch/archive/2010/07/08/119656.html#Feedback1http://m.shnenglu.com/lwch/comments/commentRss/119656.htmlhttp://m.shnenglu.com/lwch/services/trackbacks/119656.html銆婃暟鎹粨鏋勪箣綰挎ц〃銆?/a>
鏈枃闃愯堪浜嗙嚎鎬ц〃涓殑欏哄簭瀛樺偍緇撴瀯鍜岄摼鎺ュ瓨鍌ㄧ粨鏋勶紝鍏朵腑涓昏浠嬬粛浜嗗崟閾捐〃鍜屽驚鐜弻閾捐〃緇撴瀯錛岀嚎鎬ц〃涔冩渶鍩烘湰鐨勬暟鎹粨鏋勩?
銆婃暟鎹粨鏋勪箣鏍堛?/a>
鏈枃闃愯堪浜嗙嚎鎬ц〃鐨勪竴縐嶇壒孌婂艦寮忔爤錛屽叾涓富瑕佷粙緇嶄簡鏍堢殑欏哄簭瀛樺偍緇撴瀯鍜岃繛鎺ュ瓨鍌ㄧ粨鏋勶紝鍘嬫爤涓庡嚭鏍堟搷浣溿?

lwch 2010-07-08 00:12 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩亚洲一区二区三区在线观看| 亚洲午夜一区二区三区| 亚欧成人在线| 欧美在线观看www| 亚洲精选在线| 亚洲影院色在线观看免费| 国产一区视频在线看| 亚洲经典在线看| 欧美午夜影院| 欧美va天堂| 欧美午夜在线观看| 久久精品亚洲精品国产欧美kt∨| 欧美69视频| 久久精选视频| 欧美性事免费在线观看| 牛牛国产精品| 国产日韩欧美三级| 亚洲精品美女久久7777777| 国产一区二区三区四区三区四| 最新国产拍偷乱拍精品 | 午夜视频在线观看一区| 老司机成人网| 欧美在线视频全部完| 欧美日韩国产黄| 欧美顶级少妇做爰| 国产一区导航| 亚洲一区二区在线看| 一本色道久久综合狠狠躁篇的优点 | 欧美国产欧美亚洲国产日韩mv天天看完整| 香蕉久久久久久久av网站| 欧美精品导航| 欧美大片免费| 伊人久久综合| 久久精品国产2020观看福利| 午夜精品久久久久久 | 亚洲第一精品电影| 在线看片第一页欧美| 欧美亚洲自偷自偷| 欧美亚洲视频| 国产精品专区第二| 亚洲免费在线播放| 亚洲欧美国产不卡| 欧美日韩国产一区| 亚洲免费观看| 一区二区三区国产| 欧美精品七区| 亚洲伦理网站| 一个色综合av| 欧美美女bb生活片| 亚洲人成人99网站| 久久精品视频99| 国产精品久久久久免费a∨大胸| 另类人畜视频在线| 亚洲人线精品午夜| 乱中年女人伦av一区二区| 免费人成精品欧美精品| 精品动漫3d一区二区三区| 亚洲欧美日韩国产| 欧美一级黄色网| 国产视频亚洲精品| 欧美一区二区视频网站| 久久国产精品久久久久久| 国产欧美短视频| 欧美一区二区三区四区在线| 久久久在线视频| 在线观看一区视频| 欧美高清视频在线| 一区二区三区日韩| 小黄鸭精品密入口导航| 国产自产在线视频一区| 久久一区亚洲| 亚洲狼人综合| 久久都是精品| 亚洲国产mv| 欧美日韩精品免费| 亚洲私人影院在线观看| 久久久99爱| 亚洲乱码视频| 国产精品外国| 久久综合色天天久久综合图片| 亚洲国产精选| 亚洲一区二区视频在线| 国产亚洲欧美日韩在线一区| 可以看av的网站久久看| 99精品视频免费| 久久久久久香蕉网| 日韩视频免费观看高清完整版| 国产精品www994| 久久久综合免费视频| 99热在线精品观看| 蜜臀99久久精品久久久久久软件| 日韩写真在线| 国产婷婷成人久久av免费高清| 免费在线播放第一区高清av| 夜夜嗨av色综合久久久综合网| 久久久蜜桃精品| 制服丝袜亚洲播放| 伊人久久综合97精品| 欧美性大战久久久久久久蜜臀| 久久精品99国产精品酒店日本| 亚洲人屁股眼子交8| 久久久亚洲精品一区二区三区 | 免费高清在线一区| 亚洲一区二区三区精品在线观看 | 亚洲尤物视频在线| 欧美激情亚洲激情| 久久成人免费网| 亚洲视频一区二区| 亚洲激情综合| 黄色成人在线| 国产精品亚洲а∨天堂免在线| 欧美激情精品久久久久久大尺度| 久久电影一区| 亚洲欧美日韩精品久久久久| 亚洲免费观看视频| 欧美激情一区二区三区不卡| 欧美专区在线| 午夜精品视频| 亚洲免费人成在线视频观看| 亚洲另类在线视频| 亚洲国产精品久久久| 韩国美女久久| 国产一区二区三区在线观看免费视频| 欧美日本中文| 欧美精品激情在线| 免费不卡在线观看av| 久久男人资源视频| 久久精品人人做人人爽| 午夜精品一区二区三区在线播放| 一区电影在线观看| 一本一本大道香蕉久在线精品| 亚洲国产视频a| 亚洲国产精品一区二区第一页| 你懂的网址国产 欧美| 麻豆av一区二区三区久久| 久久人91精品久久久久久不卡| 久久大逼视频| 久久久伊人欧美| 开元免费观看欧美电视剧网站| 久久美女性网| 蜜桃久久精品乱码一区二区| 免费黄网站欧美| 欧美二区在线| 欧美激情一区二区在线| 亚洲第一在线综合在线| 亚洲国产精品va在线看黑人动漫| 亚洲大胆女人| 亚洲精品国产欧美| 99视频一区二区| 亚洲在线视频观看| 香蕉久久国产| 久久久精品日韩| 免费久久99精品国产自在现线| 欧美成人亚洲成人| 欧美日韩国产精品一区| 国产精品国产成人国产三级| 国产女主播一区二区三区| 国产自产2019最新不卡| 亚洲国产成人av| 一区二区三区成人| 亚洲小说春色综合另类电影| 欧美一区二区播放| 免费视频亚洲| 亚洲三级观看| 亚洲影视中文字幕| 久久精品国产99国产精品澳门| 久久青草福利网站| 欧美精品三级日韩久久| 国产精品一区免费观看| 曰韩精品一区二区| 中国成人黄色视屏| 久久蜜臀精品av| 亚洲精品国产精品乱码不99| 亚洲欧美日韩爽爽影院| 久久这里有精品15一区二区三区| 欧美精品高清视频| 国产日韩欧美制服另类| 亚洲精品日产精品乱码不卡| 亚洲欧美日韩国产一区二区三区 | 国产精品永久入口久久久| 一区二区三区在线观看欧美| 日韩视频不卡中文| 久久精品亚洲一区二区| 亚洲国产精品一区二区www| 亚洲一区自拍| 欧美成人免费网站| 国产农村妇女毛片精品久久麻豆| 亚洲精品1234| 久久激情五月婷婷| 日韩视频国产视频| 久久九九精品| 国产精品扒开腿做爽爽爽软件 | 久久aⅴ国产欧美74aaa| 欧美日韩综合精品| 亚洲成色最大综合在线| 亚洲欧美bt| 最新成人av网站| 久久综合九色99| 国产视频综合在线| 亚洲综合大片69999|