锘??xml version="1.0" encoding="utf-8" standalone="yes"?>黄色精品在线看,一区二区欧美国产,亚洲免费在线视频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>
            欧美日韩久久| 国产精品h在线观看| 狠狠色狠狠色综合日日五| 欧美一区高清| 久久成人免费电影| 在线播放日韩专区| 亚洲国产高清自拍| 欧美经典一区二区三区| 亚洲在线一区| 欧美在线一级va免费观看| 在线国产日韩| 亚洲精品一区二区在线观看| 国产精品va在线播放| 久久久另类综合| 狂野欧美激情性xxxx| 99精品视频免费全部在线| 中文在线一区| 经典三级久久| 亚洲精品久久久久中文字幕欢迎你 | 99一区二区| 亚洲综合999| 亚洲国产高清自拍| 一区二区高清视频在线观看| 国产亚洲精品7777| 亚洲精品1区2区| 国产婷婷精品| 日韩视频中文字幕| 激情成人综合| 一区二区三区三区在线| 狠狠狠色丁香婷婷综合久久五月| 亚洲国产精品悠悠久久琪琪| 国产精品日日做人人爱| 欧美成人免费在线| 国产精品久久午夜| 欧美二区在线看| 国产精品一卡二| 亚洲人体大胆视频| 黄色小说综合网站| 亚洲少妇一区| 亚洲精品免费观看| 久久久久久婷| 久久精品欧洲| 久久嫩草精品久久久精品一| 欧美mv日韩mv国产网站app| 亚洲欧美国产77777| 欧美黄色aa电影| 久久久亚洲午夜电影| 国产精品igao视频网网址不卡日韩| 免费成人黄色| 韩日在线一区| 亚洲欧美日韩直播| 性欧美超级视频| 欧美深夜影院| 亚洲欧洲美洲综合色网| 亚洲国产精品一区二区尤物区| 性做久久久久久久免费看| 亚洲一区免费| 欧美日韩一区二区国产| 亚洲精品国产无天堂网2021| 亚洲激情社区| 你懂的亚洲视频| 你懂的网址国产 欧美| 国内外成人免费激情在线视频网站| 亚洲深夜影院| 亚洲天堂成人| 国产精品嫩草影院av蜜臀| 日韩一级黄色片| 亚洲小少妇裸体bbw| 欧美日韩美女| 亚洲一区二区三区影院| 亚洲免费一在线| 国产精品美女在线观看| 亚洲一区二区三区在线看| 欧美制服丝袜| 悠悠资源网久久精品| 久久美女性网| 欧美黄色视屏| 99精品免费网| 欧美亚男人的天堂| 午夜精品久久久久久| 久久亚洲高清| 亚洲国产美女精品久久久久∴| 欧美电影免费观看| 一区二区三区欧美视频| 欧美专区在线观看| 在线视频成人| 欧美精品一区二区三区在线看午夜| 日韩亚洲一区在线播放| 欧美一区91| 亚洲黄色成人| 欧美三区美女| 久久国产精品99国产| 亚洲国产欧美在线| 午夜精品在线视频| 韩国女主播一区| 欧美精品一区二区三区蜜桃| 亚洲影视在线播放| 蜜臀久久99精品久久久久久9| 亚洲欧洲在线免费| 国产精品女主播一区二区三区| 久久国产黑丝| 亚洲免费精彩视频| 久久中文字幕一区| 在线一区二区视频| 黄色亚洲免费| 国产精品久久久久av免费| 久久久久久久久综合| 一区二区久久久久| 欧美 日韩 国产一区二区在线视频| 亚洲最新视频在线| 国外成人在线视频| 国产精品二区二区三区| 免费看的黄色欧美网站| 亚洲一区二区三区免费观看| 欧美黄色aaaa| 久久国产精品高清| 一区二区三区欧美成人| 狠狠色丁香久久综合频道| 欧美日韩在线高清| 麻豆成人在线观看| 性欧美精品高清| 99国产精品私拍| 欧美激情一区| 久久亚洲春色中文字幕| 亚洲一区二区三区四区在线观看| 一区国产精品| 国产一区二区精品在线观看| 欧美日韩在线不卡一区| 欧美1区2区3区| 久久久久久九九九九| 欧美一区二区三区婷婷月色| 日韩视频免费在线观看| 亚洲国产中文字幕在线观看| 麻豆精品一区二区综合av| 西瓜成人精品人成网站| 亚洲一区在线免费| 一道本一区二区| 99re这里只有精品6| 亚洲精品一区二区在线| 在线看日韩欧美| 影音先锋亚洲精品| 国产有码在线一区二区视频| 国产精品综合| 国产女精品视频网站免费 | 亚洲特级毛片| 99在线精品视频| 99精品视频免费全部在线| 日韩亚洲欧美一区| 中文高清一区| 亚洲欧美bt| 久久激情网站| 久久久久久香蕉网| 理论片一区二区在线| 蜜臀久久久99精品久久久久久| 猛男gaygay欧美视频| 欧美大尺度在线观看| 欧美激情综合色综合啪啪| 欧美剧在线观看| 欧美性大战久久久久| 国产精品专区h在线观看| 国产一区成人| 亚洲福利一区| 99热精品在线观看| 亚洲在线观看视频| 久久久久久国产精品mv| 久久人人九九| 亚洲国产日韩一区二区| 一本色道久久综合| 欧美亚洲视频在线观看| 久久裸体艺术| 欧美国产日韩一区二区在线观看 | 欧美不卡三区| 国产精品久久久久影院亚瑟| 国产亚洲精品bt天堂精选| 在线不卡欧美| 一本色道久久综合精品竹菊 | 久久综合国产精品台湾中文娱乐网 | 国产精品麻豆成人av电影艾秋| 国产婷婷色一区二区三区| 亚洲人成人一区二区三区| 亚洲欧美日韩精品久久亚洲区| 久久免费观看视频| 亚洲免费观看高清完整版在线观看熊| 亚洲女人天堂成人av在线| 久热国产精品视频| 国产精品免费在线| 最新成人av网站| 欧美在线视频播放| 亚洲激情啪啪| 欧美一区二区三区四区在线 | 久久精品国产一区二区三区| 欧美激情综合网| 国内精品免费午夜毛片| 中文国产成人精品| 欧美91大片| 午夜激情一区| 国产精品高清在线观看| 亚洲日韩中文字幕在线播放| 欧美一区二区黄色| 亚洲理伦电影|