锘??xml version="1.0" encoding="utf-8" standalone="yes"?>伊人丁香狠狠色综合久久,深夜久久AAAAA级毛片免费看,久久九九久精品国产免费直播http://www.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://www.shnenglu.com/lwch/archive/2011/02/22/140460.htmllwchlwchTue, 22 Feb 2011 09:29:00 GMThttp://www.shnenglu.com/lwch/archive/2011/02/22/140460.htmlhttp://www.shnenglu.com/lwch/comments/140460.htmlhttp://www.shnenglu.com/lwch/archive/2011/02/22/140460.html#Feedback0http://www.shnenglu.com/lwch/comments/commentRss/140460.htmlhttp://www.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://www.shnenglu.com/Files/lwch/HeapTest_2.rar" target=_blank>瀹屾暣浠g爜

lwch 2011-02-22 17:29 鍙戣〃璇勮
]]>
綆鍗曠殑鍫嗙粨鏋勫疄鐜?/title><link>http://www.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://www.shnenglu.com/lwch/archive/2011/02/15/140115.html</guid><wfw:comment>http://www.shnenglu.com/lwch/comments/140115.html</wfw:comment><comments>http://www.shnenglu.com/lwch/archive/2011/02/15/140115.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/lwch/comments/commentRss/140115.html</wfw:commentRss><trackback:ping>http://www.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://www.shnenglu.com/Files/lwch/HeapTest.rar">瀹屾暣浠g爜</a><img src ="http://www.shnenglu.com/lwch/aggbug/140115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lwch/" target="_blank">lwch</a> 2011-02-15 20:59 <a href="http://www.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://www.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://www.shnenglu.com/lwch/archive/2010/08/10/122997.html</guid><wfw:comment>http://www.shnenglu.com/lwch/comments/122997.html</wfw:comment><comments>http://www.shnenglu.com/lwch/archive/2010/08/10/122997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lwch/comments/commentRss/122997.html</wfw:commentRss><trackback:ping>http://www.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://www.shnenglu.com/images/cppblog_com/lwch/Hash.PNG" width=669 border=0><br><br>鐢變笂鍥懼彲鐭ョ粰瀹氱殑Hash琛ㄩ暱搴﹁秺闀胯秺涓嶅鏄撲駭鐢熷啿紿?鎬ц兘涔熷氨瓚婇珮. </p> <img src ="http://www.shnenglu.com/lwch/aggbug/122997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lwch/" target="_blank">lwch</a> 2010-08-10 23:37 <a href="http://www.shnenglu.com/lwch/archive/2010/08/10/122997.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏁版嵁緇撴瀯http://www.shnenglu.com/lwch/archive/2010/07/08/119656.htmllwchlwchWed, 07 Jul 2010 16:12:00 GMThttp://www.shnenglu.com/lwch/archive/2010/07/08/119656.htmlhttp://www.shnenglu.com/lwch/comments/119656.htmlhttp://www.shnenglu.com/lwch/archive/2010/07/08/119656.html#Feedback1http://www.shnenglu.com/lwch/comments/commentRss/119656.htmlhttp://www.shnenglu.com/lwch/services/trackbacks/119656.html銆婃暟鎹粨鏋勪箣綰挎ц〃銆?/a>
鏈枃闃愯堪浜嗙嚎鎬ц〃涓殑欏哄簭瀛樺偍緇撴瀯鍜岄摼鎺ュ瓨鍌ㄧ粨鏋勶紝鍏朵腑涓昏浠嬬粛浜嗗崟閾捐〃鍜屽驚鐜弻閾捐〃緇撴瀯錛岀嚎鎬ц〃涔冩渶鍩烘湰鐨勬暟鎹粨鏋勩?
銆婃暟鎹粨鏋勪箣鏍堛?/a>
鏈枃闃愯堪浜嗙嚎鎬ц〃鐨勪竴縐嶇壒孌婂艦寮忔爤錛屽叾涓富瑕佷粙緇嶄簡鏍堢殑欏哄簭瀛樺偍緇撴瀯鍜岃繛鎺ュ瓨鍌ㄧ粨鏋勶紝鍘嬫爤涓庡嚭鏍堟搷浣溿?

lwch 2010-07-08 00:12 鍙戣〃璇勮
]]>
色欲久久久天天天综合网| 国产2021久久精品| 国产激情久久久久久熟女老人| 亚洲v国产v天堂a无码久久| 99精品国产99久久久久久97| 国内精品久久人妻互换| 国产精品欧美久久久久天天影视| 久久精品成人| 久久男人Av资源网站无码软件| 久久最近最新中文字幕大全| 亚洲精品99久久久久中文字幕| 日日躁夜夜躁狠狠久久AV| 国产一区二区精品久久岳| 中文字幕人妻色偷偷久久| 精品久久久久久久久久中文字幕 | 久久久久成人精品无码中文字幕| 亚洲狠狠综合久久| 伊人久久大香线蕉亚洲五月天| 精品久久人人做人人爽综合 | 无码专区久久综合久中文字幕| 国产精品久久久99| 国产成人久久精品激情 | 一个色综合久久| 精品久久久久中文字| 久久国产乱子精品免费女| 亚洲中文久久精品无码ww16| 久久影院久久香蕉国产线看观看| 亚洲伊人久久大香线蕉苏妲己| 精品久久人妻av中文字幕| 日韩久久久久久中文人妻| 一本久道久久综合狠狠躁AV| 精品久久人人做人人爽综合| 93精91精品国产综合久久香蕉| 97久久综合精品久久久综合| 少妇精品久久久一区二区三区| 久久久亚洲裙底偷窥综合| 日韩欧美亚洲综合久久| 无码人妻久久一区二区三区蜜桃| 久久这里只有精品首页| 99精品国产99久久久久久97| 久久亚洲中文字幕精品有坂深雪 |