锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品99久久久久久久vr,久久精品一区二区三区四区,国产亚洲精品久久飘花http://www.shnenglu.com/Cass/category/17852.htmlzh-cnFri, 14 Oct 2011 09:03:01 GMTFri, 14 Oct 2011 09:03:01 GMT60褰掑茍鎺掑簭http://www.shnenglu.com/Cass/archive/2011/10/13/158249.htmlYu_Yu_Thu, 13 Oct 2011 11:34:00 GMThttp://www.shnenglu.com/Cass/archive/2011/10/13/158249.htmlhttp://www.shnenglu.com/Cass/comments/158249.htmlhttp://www.shnenglu.com/Cass/archive/2011/10/13/158249.html#Feedback0http://www.shnenglu.com/Cass/comments/commentRss/158249.htmlhttp://www.shnenglu.com/Cass/services/trackbacks/158249.html銆銆鐢寵絀洪棿錛屼嬌鍏跺ぇ灝忎負(fù)涓や釜宸茬粡鎺掑簭搴忓垪涔嬪拰錛岃絀洪棿鐢ㄦ潵瀛樻斁鍚堝茍鍚庣殑搴忓垪
銆銆璁懼畾涓や釜鎸囬拡錛屾渶鍒濅綅緗垎鍒負(fù)涓や釜宸茬粡鎺掑簭搴忓垪鐨勮搗濮嬩綅緗?
銆銆姣旇緝涓や釜鎸囬拡鎵鎸囧悜鐨勫厓绱狅紝閫夋嫨鐩稿灝忕殑鍏冪礌鏀懼叆鍒板悎騫剁┖闂達(dá)紝騫剁Щ鍔ㄦ寚閽堝埌涓嬩竴浣嶇疆
銆銆閲嶅姝ラ3鐩村埌鏌愪竴鎸囬拡杈懼埌搴忓垪灝?  闃呰鍏ㄦ枃

Yu_ 2011-10-13 19:34 鍙戣〃璇勮
]]>
B-鏍?wèi)鍙?qiáng)B錛嬫爲(wèi)http://www.shnenglu.com/Cass/archive/2011/10/05/157576.htmlYu_Yu_Wed, 05 Oct 2011 11:09:00 GMThttp://www.shnenglu.com/Cass/archive/2011/10/05/157576.htmlhttp://www.shnenglu.com/Cass/comments/157576.htmlhttp://www.shnenglu.com/Cass/archive/2011/10/05/157576.html#Feedback0http://www.shnenglu.com/Cass/comments/commentRss/157576.htmlhttp://www.shnenglu.com/Cass/services/trackbacks/157576.html1銆丅鏍?wèi)鐨勫畾涔?br />    B鏍?wèi)鏄竴縐嶅鉤琛$殑澶氬垎鏍?wèi)锛坢鍙夋爲(wèi)錛夛紝閫氬父鎴戜滑璇磎闃剁殑B鏍?wèi)锛屽畠蹇厵謇L弧瓚沖涓嬫潯浠訛細(xì)
    錛?錛夋瘡涓粨鐐硅嚦澶氭湁m涓瓙緇撶偣錛?br />    錛?錛夎嫢鏍圭粨鐐逛笉鏄彾瀛愮粨鐐癸紝鍒欒嚦灝戞湁涓ゆ5瀛愭爲(wèi)錛?/span>
    錛?錛夋墍鏈夌殑鍙剁粨鐐瑰湪鍚屼竴灞傦紱
    錛?錛夋湁k涓瓙緇撶偣鐨勯潪鏍圭粨鐐規(guī)伆濂藉寘鍚玨-1涓叧閿爜銆?/p>

2銆丅-鏍?wèi)鏁版嵁缁撴?/font>
#define
M 4        //B-鏍?wèi)鐨勯樣灱屾殏璁句?
#define false 0
#define true 1

typedef
struct BTNode
{
   
int                keynum;            //鑺傜偣涓叧閿瓧涓暟錛屽嵆鑺傜偣鐨勫ぇ灝?/span>
    struct BTNode    *parent;        //鎸囧悜鍙屼翰緇撶偣
    int                key[M+1];        //鍏抽敭瀛楀悜閲忥紝0鍙峰崟鍏冩湭鐢?/span>
    struct BTNode    *son[M+1];        //瀛愭爲(wèi)鎸囬拡鍚戦噺
   
//Record        *recptr[M+1];    //璁板綍鎸囬拡鍚戦噺錛?鍙峰崟鍏冩湭鐢?鏂囦歡涓嬌鐢?
}BTNode, *BTree;        //B-鏍?wèi)鑺傜偣鍜孊-鏍?wèi)鐨劸c誨瀷

typedef
struct
{
    BTNode           
*pt;            //鎸囧悜鎵懼埌鐨勮妭鐐?/span>
    int pos; //1...m,鍦ㄨ妭鐐逛腑鐨勫叧閿瓧搴忓彿
    int                tag;            //1:鏌ユ壘鎴愬姛錛?:鏌ユ壘澶辮觸
}Result;        //B-鏍?wèi)鐨勬煡鎵揪l撴灉綾誨瀷

//鍒濆鍖?/span>
void init_BTree(BTree &root)
{
    root
=NULL;
}

2銆丅鏍?wèi)鐨勬煡鎵?
    B鏍?wèi)涓婄殑鏌ユ壘鏄竴涓『鎸囬拡鏌ユ壘緇撶偣鍜屽湪緇撶偣鍐呯殑鍏抽敭鐮佷腑鏌ユ壘浜ゅ弶榪涜鐨勮繃紼嬨?span style="color: red">浠庢牴緇撶偣寮濮?/span>錛屽湪緇撶偣鍖呭惈鐨勫叧閿爜涓煡鎵劇粰瀹氱殑鍏抽敭鐮侊紝鎵懼埌鍒欐煡鎵炬垚鍔燂紱鍚﹀垯紜畾緇欏畾鍏抽敭鐮佸彲鑳藉湪鐨勫瓙鏍?wèi)锛岄噸澶嶄笂闈㈢殑鎿嶄綔锛岀洿鍒版煡鎵炬垚鍔熸垨鑰呮寚閽堜負(fù)絀轟負(fù)姝€?
    涓嬪浘鏄劇ず浜嗗湪B鏍?wèi)涓煡鎵惧叧閿?1鐨勮繃紼嬨?



int search(BTree &p,int key)
{
   
int j;
   
for(j=1; j<=p->keynum; j++)
       
if(p->key[j] > key)
        {
           
break;
        }
   
return j-1;        //搴旇鎻掑叆鐨勪綅緗殑鍓嶄竴浣?/span>
}
Result searchBtree(BTree
&root, int key)
{
   
//鍦╩闃禕鏍?wèi)t涓婃煡鎵懼叧閿爜key錛屽弽鍥?pt,i,tag)銆?br />    //鑻ユ煡鎵炬垚鍔燂紝鍒欑壒寰佸紅ag=1錛屾寚閽坧t鎵鎸囩粨鐐逛腑絎琲涓叧閿爜絳変簬key錛?br />    //鍚﹀垯錛岀壒寰佸紅ag=0,絳変簬key鐨勫叧閿爜璁板綍,搴旀彃鍏ュ湪鎸囬拡pt鎵鎸囩粨鐐逛腑絎琲涓拰絎琲+1涓叧閿爜涔嬮棿
    int found=false;
   
int i;
    BTree p
=root,father=NULL;    //鍒濆鍖栵紝p鎸囧悜寰呮煡鑺傜偣錛宷鎸囧悜p鐨勫弻浜?/span>
    Result    result;        //SearchBTree鍑芥暟榪斿洖鍊?/span>

   
while(p && !found)
    {
        i
=search(p,key);    //p->node[i].key≤K<p->node[i+1].key
        if(i>0 && p->key[i]==key)
        {
            found
=true;        //鎵懼埌寰呮煡鍏抽敭瀛?/span>
        }
       
else
        {
            father
=p;
            p
=p->son[i];
        }
    }
    result.pos
=i+1;        //pos鏄彃鍏ョ殑浣嶇疆,璁頒綇鍔?
    if(found)    //鏌ユ壘鎴愬姛
    {
        result.pt
=p;
        result.tag
=1;   
    }
   
else    //鏌ユ壘涓嶆垚鍔燂紝榪斿洖key鐨勬彃鍏ヤ綅緗甶
    {
        result.pt
=father;
        result.tag
=0;   
    }
   
return result;
}
//SearchBTree
 

3銆丅鏍?wèi)鐨勬彃鍏?
    棣栧厛鏄湪鎭板綋鐨勫彾瀛愮粨鐐逛腑娣誨姞鍏抽敭鐮侊紝濡傛灉璇ョ粨鐐逛腑鍏抽敭鐮佷笉瓚呰繃m-1涓紝鍒欐彃鍏ユ垚鍔熴傚惁鍒欒鎶婅繖涓粨鐐瑰垎瑁備負(fù)涓や釜銆傚茍鎶婁腑闂寸殑涓涓叧閿爜鎷垮嚭鏉ユ彃鍒扮粨鐐圭殑鐖剁粨鐐歸噷鍘匯傜埗緇撶偣涔熷彲鑳芥槸婊$殑錛屽氨闇瑕佸啀鍒嗚錛屽啀寰涓婃彃銆傛渶鍧忕殑鎯呭喌錛岃繖涓繃紼嬪彲鑳戒竴鐩翠紶鍒版牴錛屽鏋滈渶瑕佸垎瑁傛牴錛岀敱浜庢牴鏄病鏈夌埗緇撶偣鐨勶紝榪欐椂灝卞緩绔嬩竴涓柊鐨勬牴緇撶偣銆傛彃鍏ュ彲鑳藉鑷碆鏍?wèi)鏈濈潃鏍圭殑鏂瑰悜鐢熼暱銆?nbsp;

B-鏍?wèi)鐨勭敓鎴愪粠绌烘爲(wèi)寮濮嬶紝閫愪釜鎻掑叆鍏抽敭瀛楄屽緱銆傚叧閿瓧鐨勪釜鏁板繀欏昏嚦灝戜負(fù)[m/2]-1錛屾瘡嬈℃彃鍏ユ誨湪鏈搴曞眰鏌愪釜緇堢緇撶偣娣誨姞涓涓叧閿瓧錛屽鏋滆緇撶偣鍏抽敭瀛椾釜鏁板皬浜巑-1鍒欑洿鎺ユ彃鍏ワ紝濡傛灉鍙戠幇鏂版彃鍏ュ叧閿瓧鍚庯紝鍏抽敭瀛楁繪暟瓚呰繃m-1涓垯緇撶偣闇瑕佸垎瑁傦紝鍋氭硶濡備笅錛?

銆銆(a)鍋囪緇撶偣p涓凡緇忓惈鏈塵-1涓叧閿瓧錛屽啀鎻掑叆涓涓叧閿瓧涔嬪悗(鎻掑叆鎬昏淇濇寔鍏抽敭瀛楁暟緇勭殑澶у皬鏈夊簭錛屼粠灝忓埌澶ф帓濂藉簭)錛屽彲浠ュ皢p鍒嗚涓簆鍜宲’錛屽叾涓璸鍚湁鐨勪俊鎭負(fù)[m/2]-1([m]琛ㄧず澶т簬m鐨勬渶灝忔暣鏁?錛宲’鍚湁鐨勪俊鎭負(fù)m-[m/2] ([m]琛ㄧず澶т簬m鐨勬渶灝忔暣鏁?銆傜劧鍚庡皢鍏抽敭瀛桲[m/2]鍜屾寚鍚憄’鐨勬寚閽堝垯涓璧鋒彃鍏ュ埌p鐨勫弻浜茬粨鐐逛腑鍘匯?

銆銆(b)媯鏌ュ弻浜茬粨鐐癸紝濡傛灉鍙屼翰緇撶偣鍑虹幇(a)鐨勬儏鍐碉紝鍒欏洖鍒版楠緇х畫鎵ц銆傜洿鍒版彃鍏ユ弧瓚蟲潯浠朵負(fù)姝紝鏍?wèi)鐨勬繁搴﹀鍔牁q囩▼鏄殢鐫鎻掑叆鑰岃嚜涓嬭屼笂鐢熼暱鐨勮繃紼嬨?br />    涓嬪浘鏄劇ず浜嗗湪B鏍?wèi)涓彃鍏ュ叧閿?3鐨勮繃紼嬨?



void split(BTree &q, int s, BTree &ap)
{
   
// 灝嗙粨鐐筿鍒嗚鎴愪袱涓粨鐐癸紝鍓嶄竴鍗婁繚鐣欙紝鍚庝竴鍗婄Щ鍏ユ柊鐢熺粨鐐筧p
    int i;
    cout
<<"鍒嗚!"<<"  "<<q->key[s]<<endl;
    ap
=(BTree)malloc(sizeof(BTNode));        //鐢熸垚鏂扮粨鐐筧p
    ap->son[0] = q->son[s];            //鍘熸潵緇撶偣涓棿浣嶇疆鍏抽敭瀛楃浉搴旀寚閽堟寚鍚戠殑瀛愭爲(wèi)鏀懼埌鏂扮敓鎴愮粨鐐圭殑0媯靛瓙鏍?wèi)涓?/span>
    for(i=s+1;i<=M;i++)        //鍚庝竴鍗婄Щ鍏p
    {
        ap
->key[i-s]=q->key[i];
        ap
->son[i-s]=q->son[i];
    }
//for
    ap->keynum=M-s;
    ap
->parent=q->parent;
    q
->keynum=s-1;        //q鐨勫墠涓鍗婁繚鐣欙紝淇敼keynum
}//split

void NewRoot(BTree &root, int x, BTree &ap)        //鐢熸垚鏂扮殑鏍硅妭鐐?/span>
{
   
//鐢熸垚鍚俊鎭?root,r,ap)鐨勬柊鐨勬牴緇撶偣*root錛屽師root鍜宎p涓哄瓙鏍?wèi)鎸囬?/span>
    BTree p;
    p
=(BTree)malloc(sizeof(BTNode));
   
if(root)    //濡傛灉鍘熸潵鐨勬爲(wèi)涓嶆槸絀烘爲(wèi)
        root->parent=p;                    //榪滄潵鐨勬牴鐨勫弻浜叉寚閽堟寚鍚戞柊鏍?/span>
    p->son[0]=root;                        //鏂版牴鐨勭涓涓瀛愯妭鐐規(guī)槸鍘熸潵鐨勬牴鑺傜偣
    root=p;        //root鎸囧悜鏂版牴   
    root->parent=NULL;                    //鏂版牴鐨勫弻浜叉槸絀烘寚閽?/span>
    root->keynum=1;           
    root
->key[1]=x;                        //鏂版牴鐨勭涓涓叧閿瓧灝辨槸鍓嶉潰鍒嗚鍑烘潵鐨勫叧閿瓧
    root->son[1]=ap;                    //鏂版牴鐨勭浜屼釜瀛╁瓙鑺傜偣鏄師鏉ョ殑鏍逛腑鍒嗚鍑烘潵鐨勮妭鐐?/span>
    if(ap)        //濡傛灉鍘熸潵鐨勬爲(wèi)涓嶆槸絀烘爲(wèi)
        ap->parent=root;                //鍘熸潵鐨勬牴涓垎瑁傚嚭鏉ョ殑鑺傜偣鐨勫弻浜叉寚閽堟寚鍚戞柊鏍?/span>
}//NewRoot

void insert(BTree &q, int i, int key, BTree &ap)    //鎻掑叆
{
   
int j;
   
for(j=q->keynum; j>=i; j--)
    {
        q
->key[j+1]=q->key[j];
    }
    q
->key[i]=key;
   
for(j=q->keynum; j>=i; j--)
    {
        q
->son[j+1]=q->son[j];
    }
    q
->son[i]=ap;
    q
->keynum++;
}
//insert
void insertBtree(BTree &root, int key, BTree &q, int i)
{
   
//鍦˙-鏍?wèi)T涓婅妭鐐筿鐨刱ey[i]鍜宬ey[i+1]涔嬮棿鎻掑叆鍏抽敭瀛梜ey
   
//鑻ュ紩璧瘋妭鐐硅繃澶э紝鍒欐部鍙屼翰閾捐繘琛屽繀瑕佺殑鑺傜偣鍒嗚鏁寸悊錛屼嬌T浠嶆槸M闃剁殑B-鏍?/span>
    BTree ap=NULL;
   
int x=key;
   
int finished = false;
   
int s;
   
while(q && !finished)
    {
        insert(q, i, x, ap);   
//灝唊ey鍜宎p鍒嗗埆鎻掑叆鍒皅->key[i+1]鍜宷->son[i+1]
        if(q->keynum <    M)
            finished
= true;    //鎻掑叆瀹屾垚
        else
        {   
//鍒嗚緇撶偣*q
            s=ceil(M/2);
            x
=q->key[s];
            split(q, s, ap);   
//灝唓->key[s+1...M],q->son[s...M]鍜宷->recptr[s+1...M]縐誨叆鍒版柊鑺傜偣*ap
            q=q->parent;
           
if(q)
                i
=search(q,x)+1;        //鍦ㄥ弻浜茬粨鐐?q涓幓鏌ユ壘x鐨勬彃鍏ヤ綅緗?璁頒綇鍔?錛屽洜涓簊earch()榪斿洖鐨勬槸鎻掑叆浣嶇疆鐨勫墠涓浣?/span>
        }//else
    }//while
    if(!finished)                //root鏄┖鏍?鍙傛暟q鍒濆間負(fù)NULL)鎴栬呮牴鑺傜偣宸插垎瑁備負(fù)鑺傜偣*q鍜?ap
        NewRoot(root, x, ap);    //鐢熸垚鍚俊鎭?root,x,ap)鐨勬柊鐨勬牴鑺傜偣*root錛屽師root鍜宎p涓哄瓙鏍?wèi)鎸囬?/span>
}//insertBtree

void SearchInsertBTree(BTree &root,int key)//鎼滅儲鎻掑叆
{
   
//鍦╩闃禕鏍?t涓婄粨鐐?q鐨刱ey[i],key[i+1]涔嬮棿鎻掑叆鍏抽敭鐮乲ey
   
//鑻ュ紩璧風(fēng)粨鐐硅繃澶э紝鍒欐部鍙屼翰閾捐繘琛屽繀瑕佺殑緇撶偣鍒嗚璋冩暣錛屼嬌*t浠嶄負(fù)m闃禕鏍?/span>
    Result    rs;
    rs
= searchBtree(root,key);
   
if(!rs.tag)    //tag=0鏌ユ壘涓嶆垚鍔燂紝鎻掑叆
    {
        cout
<<"鏍?wèi)涓病鏈夌浉鍚岀殑鑺傜偣锛屾彃鍏?"<<endl;
        insertBtree(root, key, rs.pt, rs.pos);   
//鍦˙-鏍?wèi)T涓婅妭鐐箁e.pt鐨刱ey[i]鍜宬ey[i+1]涔嬮棿鎻掑叆鍏抽敭瀛梜ey
    }
   
else
    {
        cout
<<"鏍?wèi)涓凡鏈夌浉鍚岀殑鑺傜?"<<endl;
    }
}
//InserBTree

4銆丅鏍?wèi)鐨勫垹闄?
    B鏍?wèi)涓殑鍒犻櫎鎿嶄綔涓庢彃鍏ユ搷浣溇c諱技錛屼絾瑕佺◢寰鏉備簺銆傚鏋滃垹闄ょ殑鍏抽敭鐮佷笉鍦ㄥ彾緇撶偣灞傦紝鍒欏厛鎶婃鍏抽敭鐮佷笌瀹冨湪B鏍?wèi)閲岀殑鍚幘lу鎹綅緗紝鐒跺悗鍐嶅垹闄よ鍏抽敭鐮併傚鏋滃垹闄ょ殑鍏抽敭鐮佸湪鍙剁粨鐐瑰眰錛屽垯鎶婂畠浠庡畠鎵鍦ㄧ殑緇撶偣閲屽幓鎺夛紝榪欏彲鑳藉鑷存緇撶偣鎵鍖呭惈鐨勫叧閿爜鐨勪釜鏁板皬浜?-1銆傝繖縐嶆儏鍐典笅錛岃冨療璇ョ粨鐐圭殑宸︽垨鍙沖厔寮燂紝浠庡厔寮熺粨鐐圭Щ鑻ュ共涓叧閿爜鍒拌緇撶偣涓潵(榪欎篃娑夊強(qiáng)鍒板畠浠殑鐖剁粨鐐逛腑鐨勪竴涓叧閿爜瑕佸仛鐩稿簲鍙樺寲)錛屼嬌涓や釜緇撶偣鎵鍚叧閿爜涓暟鍩烘湰鐩稿悓銆傚彧鏈夊湪鍏勫紵緇撶偣鐨勫叧閿爜涓暟涔熷緢灝戯紝鍒氬ソ絳変簬 -1鏃訛紝榪欎釜縐誨姩涓嶈兘榪涜銆傝繖縐嶆儏鍐典笅錛岃鎶婂皢鍒犻櫎鍏抽敭鐮佺殑緇撶偣錛屽畠鐨勫厔寮熺粨鐐瑰強(qiáng)瀹冧滑鐨勭埗緇撶偣涓殑涓涓叧閿爜鍚堝茍涓轟竴涓粨鐐廣?

B+鏍?/strong>
銆B+鏍?wèi)鏄簲鏂囦欢绯痪l熸墍闇鑰屽嚭鐨勪竴縐?a target="_blank">B-鏍?/font>鐨勫彉鍨嬫爲(wèi)銆備竴媯祄闃剁殑B+鏍?wèi)鍜宮闃剁殑B-鏍?wèi)鐨勫樊寮傚湪浜庡Q?

銆銆1.鏈塶媯靛瓙鏍?wèi)鐨劸l撶偣涓惈鏈塶涓叧閿瓧銆?

銆銆2.鎵鏈夌殑鍙跺瓙緇撶偣涓寘鍚簡鍏ㄩ儴鍏抽敭瀛楃殑淇℃伅錛屽強(qiáng)鎸囧悜鍚繖浜涘叧閿瓧璁板綍鐨勬寚閽堬紝涓斿彾瀛愮粨鐐規(guī)湰韜緷鍏抽敭瀛楃殑澶у皬鑷皬鑰屽ぇ欏哄簭閾炬帴銆?

銆銆3.鎵鏈夌殑闈炵粓绔粨鐐瑰彲浠ョ湅鎴愭槸绱㈠紩閮ㄥ垎錛岀粨鐐逛腑浠呭惈鍏跺瓙鏍?wèi)锛堟牴缁撶偣锛変腑鐨勬渶澶э紙鎴栨渶灝忥級鍏抽敭瀛椼?

銆銆閫氬父鍦˙+鏍?wèi)涓婃湁涓や釜澶存寚閽堝Q屼竴涓寚鍚戞牴緇撶偣錛屼竴涓寚鍚戝叧閿瓧鏈灝忕殑鍙跺瓙緇撶偣銆?br />

 

1銆丅+鏍?wèi)鐨勬煡鎵?/span>

銆銆瀵笲+鏍?wèi)鍙互杩涜涓たU嶆煡鎵捐繍綆楋細(xì)

銆銆1.浠庢渶灝忓叧閿瓧璧烽『搴忔煡鎵撅紱

銆銆2.浠庢牴緇撶偣寮濮嬶紝榪涜闅忔満鏌ユ壘銆?

銆銆鍦ㄦ煡鎵炬椂錛岃嫢闈炵粓绔粨鐐逛笂鐨勫墽緇勬満絳変簬緇欏畾鍊鹼紝騫朵笉緇堟錛岃屾槸緇х畫鍚戜笅鐩村埌鍙跺瓙緇撶偣銆傚洜姝わ紝鍦˙+鏍?wèi)涓Q屼笉綆℃煡鎵炬垚鍔熶笌鍚︼紝姣忔鏌ユ壘閮芥槸璧頒簡涓鏉′粠鏍瑰埌鍙跺瓙緇撶偣鐨勮礬寰勩傚叾浣欏悓B-鏍?wèi)鐨勬煡鎵揪c諱技銆?

2銆丅+鏍?wèi)鐨勬彃鍏?/span>

銆銆m闃禕鏍?wèi)鐨勬彃鍏ユ搷浣滃湪鍙跺瓙缁撶偣涓姌q涜錛屽亣璁捐鎻掑叆鍏抽敭鍊糰錛屾壘鍒板彾瀛愮粨鐐瑰悗鎻掑叆a錛屽仛濡備笅綆楁硶鍒ゅ埆錛?

銆銆①濡傛灉褰撳墠緇撶偣鏄牴緇撶偣騫朵笖鎻掑叆鍚庣粨鐐瑰叧閿瓧鏁扮洰灝忎簬絳変簬m錛屽垯綆楁硶緇撴潫錛?

銆銆②濡傛灉褰撳墠緇撶偣鏄潪鏍圭粨鐐瑰茍涓旀彃鍏ュ悗緇撶偣鍏抽敭瀛楁暟鐩皬浜庣瓑浜巑錛屽垯鍒ゆ柇鑻鏄柊绱㈠紩鍊兼椂杞楠?#9315;鍚庣粨鏉燂紝鑻涓嶆槸鏂扮儲寮曞煎垯鐩存帴緇撴潫錛?

銆銆③濡傛灉鎻掑叆鍚庡叧閿瓧鏁扮洰澶т簬m(闃舵暟)錛屽垯緇撶偣鍏堝垎瑁傛垚涓や釜緇撶偣X鍜孻錛屽茍涓斾粬浠悇鑷墍鍚殑鍏抽敭瀛椾釜鏁板垎鍒負(fù)錛歶=澶т簬(m+1)/2鐨勬渶灝忔暣鏁幫紝v=灝忎簬(m+1)/2鐨勬渶澶ф暣鏁幫紱

銆銆鐢變簬绱㈠紩鍊間綅浜庣粨鐐圭殑鏈宸︾鎴栬呮渶鍙崇錛屼笉濡ㄥ亣璁劇儲寮曞間綅浜庣粨鐐規(guī)渶鍙崇錛屾湁濡備笅鎿嶄綔錛?

銆銆濡傛灉褰撳墠鍒嗚鎴愮殑X鍜孻緇撶偣鍘熸潵鎵灞炵殑緇撶偣鏄牴緇撶偣錛屽垯浠嶺鍜孻涓彇鍑虹儲寮曠殑鍏抽敭瀛楋紝灝嗚繖涓や釜鍏抽敭瀛楃粍鎴愭柊鐨勬牴緇撶偣錛屽茍涓旇繖涓牴緇撶偣鎸囧悜X鍜孻錛岀畻娉曠粨鏉燂紱

銆銆濡傛灉褰撳墠鍒嗚鎴愮殑X鍜孻緇撶偣鍘熸潵鎵灞炵殑緇撶偣鏄潪鏍圭粨鐐癸紝渚濇嵁鍋囪鏉′歡鍒ゆ柇錛屽鏋渁鎴愪負(fù)Y鐨勬柊绱㈠紩鍊鹼紝鍒欒漿姝ラ④寰楀埌Y鐨勫弻浜茬粨鐐筆錛屽鏋渁涓嶆槸Y緇撶偣鐨勬柊绱㈠紩鍊鹼紝鍒欐眰鍑篨鍜孻緇撶偣鐨勫弻浜茬粨鐐筆錛涚劧鍚庢彁鍙朮緇撶偣涓殑鏂扮儲寮曞糰’錛屽湪P涓彃鍏ュ叧閿瓧a’錛屼粠P寮濮嬶紝緇х畫榪涜鎻掑叆綆楁硶錛?

銆銆④鎻愬彇緇撶偣鍘熸潵鐨勭儲寮曞糱錛岃嚜欏跺悜涓嬶紝鍏堝垽鏂牴鏄惁鍚湁b錛屾槸鍒欓渶瑕佸厛灝哹鏇挎崲涓篴錛岀劧鍚庝粠鏍圭粨鐐瑰紑濮嬶紝璁板綍緇撶偣鍦板潃P錛屽垽鏂璓鐨勫瀛愭槸鍚﹀惈鏈夌儲寮曞糱鑰屼笉鍚湁绱㈠紩鍊糰錛屾槸鍒欏厛灝嗗瀛愮粨鐐逛腑鐨刡鏇挎崲涓篴錛岀劧鍚庡皢P鐨勫瀛愮殑鍦板潃璧嬪肩粰P錛岀戶緇悳绱紝鐩村埌鍙戠幇P鐨勫瀛愪腑宸茬粡鍚湁a鍊兼椂錛屽仠姝㈡悳绱紝榪斿洖鍦板潃P銆?

3銆丅+鏍?wèi)鐨勫垹闄?/span>

銆銆B+鏍?wèi)鐨勫垹闄や篃浠呭湪鍙跺瓙缁撶偣杩涜锛屽綋鍙跺瓙缁撶偣涓殑鏈澶у叧閿瓧琚垹闄ゆ椂錛屽叾鍦ㄩ潪緇堢緇撶偣涓殑鍊煎彲浠ヤ綔涓轟竴涓?#8220;鍒嗙晫鍏抽敭瀛?#8221;瀛樺湪銆傝嫢鍥犲垹闄よ屼嬌緇撶偣涓叧閿瓧鐨勪釜鏁板皯浜巑/2 錛坢/2緇撴灉鍙?a target="_blank">涓婄晫錛屽5/2緇撴灉涓?錛夋椂錛屽叾鍜屽厔寮熺粨鐐圭殑鍚堝茍榪囩▼浜﹀拰B-鏍?wèi)绫讳脊{?

銆銆鍙﹀鐨勭湅娉曪紝褰撲綔琛ュ厖鍜屼赴瀵屽惂銆侭鏍?wèi)锛孊-鏍?wèi)鍜孊+鏍?wèi)鏄笁涓笉鍚岀殑姒傚奎c(diǎn)?br /> 
B鏍?/strong>

銆銆浜屽弶鎺掑簭鏍?wèi)锛圔inary Sort Tree錛夊張縐頒簩鍙夋煡鎵炬爲(wèi)錛屼篃鍙獴鏍?wèi)銆?

銆銆瀹冩垨鑰呮槸涓媯電┖鏍?wèi)锛涙垨鑰呮槸鍏鋒湁涓嬪垪鎬ц川鐨勪簩鍙夋爲(wèi)錛?

銆銆(1)鑻ュ乏瀛愭爲(wèi)涓嶇┖錛屽垯宸﹀瓙鏍?wèi)涓婃墍鏈夌粨鐐圭殑鍊煎潎灝忎簬宸﹀瓙鏍?wèi)鎵鍦ㄦ爲(wèi)鐨勬牴緇撶偣鐨勫鹼紱

銆銆(2)鑻ュ彸瀛愭爲(wèi)涓嶇┖錛屽垯鍙沖瓙鏍?wèi)涓婃墍鏈夌粨鐐圭殑鍊煎潎澶т簬鍙沖瓙鏍?wèi)鎵鍦ㄦ爲(wèi)鐨勬牴緇撶偣鐨勫鹼紱

銆銆(3)宸︺佸彸瀛愭爲(wèi)涔熷垎鍒負(fù)浜屽弶鎺掑簭鏍?wèi)锛?



1銆佷簩鍙夋帓搴忔爲(wèi)錛圔鏍?wèi)锛夌殑鏌ユ壘锛?xì)

銆銆鏃墮棿澶嶆潅搴︿笌鏍?wèi)鐨勬繁搴︾殑鏈夊厽雬?

銆銆姝ラ錛氳嫢鏍圭粨鐐圭殑鍏抽敭瀛楀肩瓑浜庢煡鎵劇殑鍏抽敭瀛楋紝鎴愬姛銆?

銆銆鍚﹀垯錛氳嫢灝忎簬鏍圭粨鐐圭殑鍏抽敭瀛楀鹼紝閫掑綊鏌ュ乏瀛愭爲(wèi)銆?

銆銆鑻ュぇ浜庢牴緇撶偣鐨勫叧閿瓧鍊鹼紝閫掑綊鏌ュ彸瀛愭爲(wèi)銆?

銆銆鑻ュ瓙鏍?wèi)湄?fù)絀猴紝鏌ユ壘涓嶆垚鍔熴?

2銆佷簩鍙夋帓搴忔爲(wèi)錛圔鏍?wèi)锛夌殑鎻掑叆鍜屽垹闄ゅQ?/span>

銆銆浜屽弶鎺掑簭鏍?wèi)鏄竴縐嶅姩鎬佹爲(wèi)琛ㄣ傚叾鐗圭偣鏄細(xì)鏍?wèi)鐨劸l撴瀯閫氬父涓嶆槸涓嬈$敓鎴愮殑錛岃屾槸鍦ㄦ煡鎵捐繃紼嬩腑錛屽綋鏍?wèi)涓笉瀛樺湪鍏抽敭瀛椊{変簬緇欏畾鍊肩殑鑺傜偣鏃跺啀榪涜鎻掑叆銆傛柊鎻掑叆鐨勭粨鐐逛竴瀹氭槸涓涓柊娣誨姞鐨勫彾瀛愯妭鐐癸紝騫朵笖鏄煡鎵句笉鎴愬姛鏃舵煡鎵捐礬寰勪笂璁塊棶鐨勬渶鍚庝竴涓粨鐐圭殑宸﹀瀛愭垨鍙沖瀛愮粨鐐廣?

銆銆鎻掑叆綆楁硶錛?

銆銆棣栧厛鎵ц鏌ユ壘綆楁硶錛屾壘鍑鴻鎻掔粨鐐圭殑鐖朵翰緇撶偣銆?

銆銆鍒ゆ柇琚彃緇撶偣鏄叾鐖朵翰緇撶偣鐨勫乏鍎垮瓙榪樻槸鍙沖効瀛愩傚皢琚彃緇撶偣浣滀負(fù)鍙跺瓙緇撶偣鎻掑叆銆?

銆銆鑻ヤ簩鍙夋爲(wèi)涓虹┖銆傚垯棣栧厛鍗曠嫭鐢熸垚鏍圭粨鐐廣?

銆銆娉ㄦ剰錛氭柊鎻掑叆鐨勭粨鐐規(guī)繪槸鍙跺瓙緇撶偣錛屾墍浠ョ畻娉曞鏉傚害鏄疧(h)銆?

銆銆鍒犻櫎綆楁硶錛?

銆銆濡傛灉鍒犻櫎鐨勭粨鐐規(guī)病鏈夊瀛愶紝鍒欏垹闄ゅ悗綆楁硶緇撴潫錛?

銆銆濡傛灉鍒犻櫎鐨勭粨鐐瑰彧鏈変竴涓瀛愶紝鍒欏垹闄ゅ悗璇ュ瀛愬彇浠h鍒犻櫎緇撶偣鐨勪綅緗紱

銆銆濡傛灉鍒犻櫎鐨勭粨鐐規(guī)湁涓や釜瀛╁瓙錛屽垯閫夋嫨鍙沖瀛愪負(fù)鏍圭殑鏍?wèi)锛屽畠鐨勫乏瀛愭爲(wèi)涓Q屽兼渶灝忕殑鐐逛綔涓烘柊鐨勬牴錛屽悓鏃跺湪璇ユ渶灝忓煎寮濮嬶紝鎵ц鍒犻櫎綆楁硶錛屽姝ょ戶緇埌鍒犻櫎綆楁硶鐨勫墠涓ょ鎯呭喌鏃訛紝鍒犻櫎綆楁硶緇撴潫銆?

銆銆B鏍?wèi)鐢ㄩ旓細(xì)鏌ユ壘淇℃伅蹇燂紝浣嗘槸闅忕潃鏌ユ壘娣卞害鐨勫鍔狅紝浼?xì)濯勫搷鏌ユ墑勬晥鐜囧Q屾墍浠ワ紝閫氬父浼?xì)鋴社敤邈^琛′簩鍙夋爲(wèi)鐨勫鉤琛$畻娉曟潵榪涜鍔ㄦ佸鉤琛°?/p>

Yu_ 2011-10-05 19:09 鍙戣〃璇勮
]]>
騫寵 浜屽弶鏍?錛圓VL鏍?wèi)锛?/title><link>http://www.shnenglu.com/Cass/archive/2011/10/04/157454.html</link><dc:creator>Yu_</dc:creator><author>Yu_</author><pubDate>Mon, 03 Oct 2011 17:09:00 GMT</pubDate><guid>http://www.shnenglu.com/Cass/archive/2011/10/04/157454.html</guid><wfw:comment>http://www.shnenglu.com/Cass/comments/157454.html</wfw:comment><comments>http://www.shnenglu.com/Cass/archive/2011/10/04/157454.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Cass/comments/commentRss/157454.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Cass/services/trackbacks/157454.html</trackback:ping><description><![CDATA[     鎽樿: 1銆佸鉤琛′簩鍙夋爲(wèi)瀹冩槸涓媯電┖鏍?wèi)鎴栧畠鐨勫乏鍙充袱涓瓙鏍?wèi)鐨勯珮搴﹀樊鐨勭粷瀵瑰間笉瓚呰繃1錛屽茍涓斿乏鍙充袱涓瓙鏍?wèi)閮芥槸涓媯靛鉤琛′簩鍙夋爲(wèi)銆傘濡傚浘錛?銆佸姩鎬佸鉤琛℃妧鏈?鍔ㄦ佸鉤琛℃妧鏈疉delson-Velskii 鍜?Landis 鎻愬嚭浜嗕竴涓姩鎬佸湴淇濇寔浜屽弶鎺掑簭鏍?wèi)邈^琛$殑鏂規(guī)硶錛屽叾鍩烘湰鎬濇兂鏄細(xì)銆銆鍦ㄦ瀯閫犱簩鍙夋帓搴忔爲(wèi)鐨勮繃紼嬩腑錛屾瘡褰撴彃鍏ヤ竴涓粨鐐規(guī)椂錛岄鍏堟鏌ユ槸鍚﹀洜鎻掑叆鑰岀牬鍧忎簡鏍?wèi)鐨勻q寵 鎬э紝濡傛灉鏄洜鎻掑叆緇撶偣鑰岀牬鍧忎簡鏍?wèi)鐨勻q寵 鎬э紝鍒欐壘鍑哄叾涓渶灝忎笉騫寵 瀛愭爲(wèi)錛?..  <a href='http://www.shnenglu.com/Cass/archive/2011/10/04/157454.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/Cass/aggbug/157454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Cass/" target="_blank">Yu_</a> 2011-10-04 01:09 <a href="http://www.shnenglu.com/Cass/archive/2011/10/04/157454.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍚勭鏌ユ壘綆楁硶鐨勫疄鐜?/title><link>http://www.shnenglu.com/Cass/archive/2011/10/03/157399.html</link><dc:creator>Yu_</dc:creator><author>Yu_</author><pubDate>Mon, 03 Oct 2011 03:00:00 GMT</pubDate><guid>http://www.shnenglu.com/Cass/archive/2011/10/03/157399.html</guid><wfw:comment>http://www.shnenglu.com/Cass/comments/157399.html</wfw:comment><comments>http://www.shnenglu.com/Cass/archive/2011/10/03/157399.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Cass/comments/commentRss/157399.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Cass/services/trackbacks/157399.html</trackback:ping><description><![CDATA[1銆侀『搴忔煡鎵撅細(xì)錛堟湁涓ょ鏂規(guī)硶錛?br />鍦ㄤ竴涓凡鐭ユ棤(鎴栨湁搴忥級搴忛槦鍒椾腑鎵懼嚭涓庣粰瀹氬叧閿瓧鐩稿悓鐨勬暟鐨勫叿浣撲綅緗?br />①銆佽鍏抽敭瀛椾笌闃熷垪涓殑鍊間粠<span style="color: red">絎竴涓紑濮?/span>閫愪釜姣旇緝錛岀洿鍒版壘鍑轟笌緇欏畾鍏抽敭瀛楃浉鍚岀殑鍊間負(fù)姝€?<br /><font face="瀹嬩綋">  int SeqSearch(Seqlist R錛孠eyType K)<br />    {<br />      //鍦ㄩ『搴忚〃R[1..n]涓『搴忔煡鎵懼叧閿瓧涓篕鐨勭粨鐐癸紝<br />      //鎴愬姛鏃惰繑鍥炴壘鍒扮殑緇撶偣浣嶇疆錛屽け璐ユ椂榪斿洖-1      <br />      int i錛?br />      for(i=0;i<R.len;i++)<br />      {<br />           if(R[i].key==K) return i;<br />       }<br />      return -1錛?nbsp;<br />    } //SeqSearch</font><br /><br />②銆佷粠琛ㄤ腑鏈鍚庝竴涓褰曞紑濮嬶紝閫愪釜榪涜涓庡叧閿瓧姣旇緝銆傜洿鑷崇涓涓鹼紝elem[0]=key錛屼負(fù)璁劇疆“鍝ㄥ叺”銆傛壘涓嶅埌榪斿洖0<br /><font face="瀹嬩綋">  int SeqSearch(Seqlist R錛孠eyType K)<br />    {<br />      //鍦ㄩ『搴忚〃R[1..n]涓『搴忔煡鎵懼叧閿瓧涓篕鐨勭粨鐐癸紝<br />      //鎴愬姛鏃惰繑鍥炴壘鍒扮殑緇撶偣浣嶇疆錛屽け璐ユ椂榪斿洖0<br />      int i錛?br />      R[0].key=K錛?//<span style="color: red">璁劇疆鍝ㄥ叺</span><br />      for(i=R.len錛汻[i].key!=K;i--)錛?//浠庤〃鍚庡線鍓嶆壘<br />      return i錛?//鑻涓?錛岃〃紺烘煡鎵懼け璐ワ紝鍚﹀垯R[i]鏄鎵劇殑緇撶偣<br />    } //SeqSearch</font><br />姣旇緝錛?font face="瀹嬩綋"><strong>鎴愬姛鏃剁殑欏哄簭鏌ユ壘鐨勫鉤鍧囨煡鎵鵑暱搴︼細(xì)<br /></strong>    </font><span style="font-family: 'Times New Roman'; font-size: 10.5pt" lang="EN-US"><span><font face="瀹嬩綋"><img alt="" src="http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazha2.gif" width="369" height="49" v:shapes="_x0000_i1025" /></font></span> </span><br /><font face="瀹嬩綋">    銆鍦ㄧ瓑姒傜巼鎯呭喌涓嬶紝p<sub>i</sub>=1/n(1≤i≤n)錛屾晠鎴愬姛鐨勫鉤鍧囨煡鎵鵑暱搴︿負(fù)<br />        (n+…+2+1)/n=(n+1)/2<br />鍗蟲煡鎵炬垚鍔熸椂鐨勫鉤鍧囨瘮杈冩鏁扮害涓鴻〃闀跨殑涓鍗娿?br />鑻鍊間笉鍦ㄨ〃涓紝鍒欓』榪涜n+1嬈℃瘮杈冧箣鍚庢墠鑳界‘瀹氭煡鎵懼け璐ャ?br /><br />2銆佹姌鍗婃煡鎵撅細(xì)錛堜簩鍒嗘硶鏌ユ壘錛?蹇呴』鏈夊簭)<span style="font-family: 'Times New Roman','serif'; font-size: 9pt; mso-fareast-font-family: 瀹嬩綋; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US"><span style="mso-tab-count: 2">          <br /></span><span style="font-size: 12pt; mso-tab-count: 2">①銆佸亣璁炬暟鎹槸鎸夊崌搴忔帓搴忕殑錛屽浜庣粰瀹氬紉錛屼粠搴忓垪鐨勪腑闂翠綅緗紑濮嬫瘮杈冿紝濡傛灉褰撳墠浣嶇疆鍊肩瓑浜巟錛屽垯鏌ユ壘鎴愬姛錛?br /></span><span style="font-size: 12pt; mso-tab-count: 2">②銆佽嫢x灝忎簬褰撳墠浣嶇疆鍊鹼紝鍒欏湪鏁板垪鐨勫墠鍗婃涓煡鎵撅紱鑻澶т簬褰撳墠浣嶇疆鍊煎垯鍦ㄦ暟鍒楃殑鍚庡崐孌典腑緇х畫鏌ユ壘錛岀洿鍒版壘鍒頒負(fù)姝€?/span><span style="font-size: 12pt; mso-tab-count: 2">      </span><span style="font-size: 10pt; mso-tab-count: 2">  <br /></span><span style="mso-tab-count: 2">      <font face="瀹嬩綋">int search(int *a,int key,int low,int high) </font><br /></span></span>   {<br />      int mid;<br />銆    mid = (low + high)/2; <br />      while(low<high)<br />      {<br />         if(a[mid] == key) return mid; <br />         else <br />         if (a[mid]>key)   high=mid;<br />               else   low=mid;<br /><br />           mid = (low + high)/2;           <br />       }//while<br />      return -1;    //娌℃湁鎵懼埌<br />   }//<font size="2">search</font><br /><span style="color: red">鐢ㄩ掑綊鎬濇兂錛?/span><br />銆int search(int *a,int key,int low,int high) <div id="hvzpftn" class="spctrl"></div>銆銆{ <div id="hvzpftn" class="spctrl"></div>銆   銆int mid; <div id="hvzpftn" class="spctrl"></div>銆銆   if(low > high) <div id="hvzpftn" class="spctrl"></div>銆   銆return -1; <div id="hvzpftn" class="spctrl"></div>銆   銆mid = (low + high)/2; <div id="hvzpftn" class="spctrl"></div>銆   銆if(a[mid] == key) return mid; <div id="hvzpftn" class="spctrl"></div>銆   銆else if(a[mid] > key)   return search(a,key,low,mid -1); <div id="hvzpftn" class="spctrl"></div>銆   銆else return    search(a,key,mid + 1,high); <div id="hvzpftn" class="spctrl"></div>銆銆} <br /><br />3銆?br /></font>/////////////////////寰呯畫...<br /><br /><img src ="http://www.shnenglu.com/Cass/aggbug/157399.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Cass/" target="_blank">Yu_</a> 2011-10-03 11:00 <a href="http://www.shnenglu.com/Cass/archive/2011/10/03/157399.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浜屽弶鎼滅儲鏍?wèi)锛堜簩鍙夋帓搴忔爲(wèi)锛夊Q堜簩鍙夋煡鎵炬爲(wèi)錛?/title><link>http://www.shnenglu.com/Cass/archive/2011/10/03/157397.html</link><dc:creator>Yu_</dc:creator><author>Yu_</author><pubDate>Mon, 03 Oct 2011 02:07:00 GMT</pubDate><guid>http://www.shnenglu.com/Cass/archive/2011/10/03/157397.html</guid><wfw:comment>http://www.shnenglu.com/Cass/comments/157397.html</wfw:comment><comments>http://www.shnenglu.com/Cass/archive/2011/10/03/157397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Cass/comments/commentRss/157397.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Cass/services/trackbacks/157397.html</trackback:ping><description><![CDATA[1銆佷簩鍙夋悳绱㈡爲(wèi)鏄簩鍙夋爲(wèi)鐨勪竴縐嶏紝鏍?wèi)鐨勬瘡涓l撶偣鍚湁涓涓暟鎹」錛屾瘡涓暟鎹」鏈変竴涓敭鍊箋傜粨鐐圭殑瀛樺偍浣嶇疆鏄敱閿肩殑澶у皬鍐沖畾鐨勶紝鎵浠ヤ簩鍙夋悳绱㈡爲(wèi)鏄叧鑱斿紡瀹瑰櫒銆?br />(1)銆?nbsp;鑻ュ畠鐨勫乏瀛愭爲(wèi)涓嶇┖錛屽垯宸﹀瓙鏍?wèi)涓婃墍鏈夌粨鐐圭殑閿煎潎灝忎簬瀹冪殑鏍圭粨鐐圭殑閿鹼紱 <br />(2)銆佽嫢瀹冪殑鍙沖瓙鏍?wèi)涓嵔I猴紝鍒欏彸瀛愭爲(wèi)涓婃墍鏈夌粨鐐圭殑閿煎潎澶т簬瀹冪殑鏍圭粨鐐圭殑閿鹼紱 <br />(3)銆佸畠鐨勫乏銆佸彸瀛愭爲(wèi)涔熷垎鍒負(fù)浜屽弶鎺掑簭鏍?wèi)銆?br />娉ㄦ剰錛氾細(xì)錛氫簩鍙夋帓搴忔爲(wèi)鏄竴縐?span style="color: red">鍔ㄦ佹爲(wèi)琛?/span>錛屾爲(wèi)鐨勭粨鏋勯氬父涓嶆槸涓嬈$敓鎴愮殑銆傝屾槸鍦ㄦ煡鎵劇殑榪囩▼涓紝褰撴爲(wèi)涓笉瀛樺湪鍏抽敭瀛楃瓑浜庣粰瀹氬肩殑鑺傜偣鏃跺啀榪涜鎻掑叆銆傛柊鎻掑叆鐨勭粨鐐逛竴瀹氭槸涓涓柊娣誨姞鐨?font color="#136ec2">鍙跺瓙緇撶偣</font>錛屽茍涓旀槸鏌ユ壘涓嶆垚鍔熸椂鏌ユ壘璺緞涓婅闂殑鏈鍚庝竴涓粨鐐圭殑宸﹀瀛愭垨鍙沖瀛愮粨鐐廣?br /><br />2銆佹彃鍏ヤ笌鏌ユ壘綆楁硶錛?br />鏌ユ壘錛?br /><font size="2">錛?錛夈佽嫢浜屽弶鎺掑簭鏍?wèi)闈灲I猴紝灝嗙粰瀹氬間笌鏍硅妭鐐圭殑鍏抽敭瀛楀兼瘮杈冿紝鑻ョ浉絳夛紝鍒欐煡鎵炬垚鍔燂紱<br />錛?錛夈佽嫢涓嶇瓑錛屽垯褰撴牴鑺傜偣鐨勫叧閿瓧鍊煎ぇ浜庣粰瀹氬兼椂錛屽埌鏍圭殑宸﹀瓙鏍?wèi)涓瓨q涜鏌ユ壘錛?br />錛?錛夈佸惁鍒欏埌鏍圭殑鍙沖瓙鏍?wèi)涓瓨q涜鏌ユ壘銆傝嫢鎵懼埌錛屽垯鏌ユ壘榪囩▼鏄蛋浜嗕竴鏉′粠鏍?wèi)鏍瑰埌鎵鎵懼埌鑺傜偣鐨勮礬寰勶紱<br />錛?錛夈佸惁鍒欙紝鏌ユ壘榪囩▼緇堟浜庝竴媯電┖鏍?wèi)銆?br /><font size="2">//① 銆佹櫘閫氭煡鎵撅紝鏌ユ壘涓嶆垚鍔熻繑鍥濶ULL<br /></font><span style="color: red">閫掑綊鎬濇兂錛?/span><br /> BiTree SearchBST (BiTree *T錛孠eyType key)<br />{ <br />    //鍦ㄦ牴鎸囬拡T鎵鎸囦簩鍙夋帓搴忔爲(wèi)涓掑綊鍦版煡鎵炬煇鍏抽敭瀛楃瓑浜巏ey鐨勬暟鎹厓绱?br />    //鑻ユ煡鎵炬垚鍔燂紝鍒欒繑鍥炴寚鍚戣鏁版嵁鍏冪礌緇撶偣鐨勬寚閽堬紝鍚﹀垯榪斿洖絀烘寚閽?br />        if( (!T)||(key==T—>data.key))<br />            return (T)錛?//鏌ユ壘緇撴潫,姝ゆ椂T涓篘ULL錛屾垨鑰呬負(fù)璇ョ粨鐐?br />        else if (key< T—>data.key)<br />                return(SearchBST(T—>lchild錛宬ey))錛?//鍦ㄥ乏瀛愭爲(wèi)涓戶緇煡鎵?br />                else <br />                return(SearchBST(T —>rchild錛宬ey))錛?/ 鍦ㄥ彸瀛愭爲(wèi)涓戶緇煡鎵?br />    }//SearchBST<br /><br /><span style="color: red">闈為掑綊鎬濇兂錛?br /><font size="2"><span style="color: #000000">BiTree SearchBST (BiTree *<font size="2">root</font>錛孠eyType key)</span></font><br /></span><span>{ <br />   <span style="color: #000000"><font size="2">BiTree </font></span>*p錛?br /></span><span>   if( root 錛濓紳 NULL)return NULL錛?font size="2">//鏌ユ壘緇撴潫,姝ゆ椂鏍逛負(fù)NULL錛?/font><br /></span><span>   p 錛?root錛?br /></span><span>   while(p!=NULL)<br /></span><span>   { <br />      <font size="2">  if(<font size="2">p 錛?gt;key==Key</font>)breat錛?/font><br />       if( Key < p ->key) p 錛漰 錛?gt;<font size="2">lchild</font>錛?font size="2">//鍦ㄥ乏瀛愭爲(wèi)涓戶緇煡鎵?/font><br /></span><span>         else p 錛?p 錛?gt;<font size="2">rchild</font>錛?/<font size="2">鍦ㄥ彸瀛愭爲(wèi)涓戶緇煡鎵?/font><br /></span><span>    }<br /></span><span>   return p錛?br /></span><span>}</span><br /><font size="2">//② 銆佹煡鎵句笉鎴愬姛錛岃繑鍥炴彃鍏ヤ綅緗?br /><font size="2">    //鍦ㄦ牴鎸囬拡T鎵鎸囦簩鍙夋帓搴忔爲(wèi)涓掑綊鍦版煡鎵懼叾鍏抽敭瀛楃瓑浜巏ey鐨勬暟鎹厓绱狅紝<br />    //鑻ユ煡鎵炬垚鍔燂紝鍒欐寚閽坧鎸囧悜璇ユ暟鎹厓绱犵粨鐐癸紝騫惰繑鍥濼RUE錛?br />    //鍚﹀垯鎸囬拡p鎸囧悜鏌ユ壘璺緞涓婅闂殑鏈鍚庝竴涓粨鐐瑰茍榪斿洖FALSE錛?br />    //鎸囬拡f鎸囧悜T鐨勫弻浜詫紝鍏跺垵濮嬭皟鐢ㄥ間負(fù)NULL</font><br /> BOOL SearchBST(BiTree *T錛孠eyType key錛孊iTree *f錛孊iTree &p)<br />{<br />        if(!T) {p=f錛況eturn FALSE錛泒 //鏌ユ壘涓嶆垚鍔?br />        else if (key==T—>data.key) <br />            {p=T錛況eturn TRUE錛泒 //鏌ユ壘鎴愬姛<br />           else if (key<T—>data.key) SearchBST(T—>lchild錛宬ey錛孴錛宲)錛?//鍦ㄥ乏瀛愭爲(wèi)涓戶緇煡鎵?br />                        else SearchBST(T—>rchild錛宬ey錛孴錛宲)錛?/鍦ㄥ彸瀛愭爲(wèi)涓戶緇煡鎵?br />    }//SearchBST<br /><br /></font>鎻掑叆錛?br />錛?錛夈侀鍏堟墽琛屾煡鎵劇畻娉曪紝鎵懼嚭琚彃緇撶偣鐨勭埗浜茬粨鐐廣傛病鎵懼埌鍒欐柊寤哄瓙緇撶偣 <div id="hvzpftn" class="spctrl"></div>錛?錛夈佸垽鏂鎻掔粨鐐規(guī)槸鍏剁埗浜茬粨鐐圭殑宸︺佸彸鍎垮瓙銆傚皢琚彃緇撶偣浣滀負(fù)<a target="_blank">鍙跺瓙緇撶偣</a>鎻掑叆銆? <div id="hvzpftn" class="spctrl"></div>錛?錛夈佽嫢浜屽弶鏍?wèi)湄?fù)絀恒傚垯棣栧厛鍗曠嫭鐢熸垚鏍圭粨鐐?br /></font><br /><strong>鍩轟簬<font size="2">BOOL SearchBST(BiTree *T錛孠eyType key錛孊iTree *f錛孊iTree &p)</font>鐨勬彃鍏ョ畻娉?br /></strong>鐩稿綋浜庢柊寤哄瓙鏍?wèi)銆?br /> //褰撲簩鍙夋帓搴忔爲(wèi)T涓笉瀛樺湪鍏抽敭瀛楃瓑浜巈.key鐨勬暟鎹厓绱犳椂,鎻掑叆e騫惰繑鍥濼RUE錛屽惁鍒欒繑鍥濬ALSE<br />Status Insert BST(BiTree &T錛孍lemType e)<br />{<br />            if(!SearchBST(T錛宔.key錛孨ULL錛宲) ) //榪斿洖P涓烘彃鍏ョ殑緇撶偣鐐?br />        <strong>{</strong> //鍏堟煡鎵撅紝涓嶆垚鍔熸柊寤虹粨鐐?br />            s=(BiTree)malloc(sizeof(BiTNode))錛?br />            s->data=e錛?s->lchild= s->rchild=NULL錛?<br />            if (!p) T = s錛?//琚彃緇撶偣*s涓烘柊鐨勬牴緇撶偣 錛屽師鏍?wèi)湄?fù)絀?br />            else if (e.key<p->data.key) p->lchild=s錛?//琚彃緇撶偣*s涓哄乏瀛╁瓙<br />                    else p—>rchild=s //琚彃緇撶偣*s涓哄彸瀛╁瓙<br />            return TRUE錛?br />       <strong>   }<br /></strong>        else <br />      return FALSE; //鏍?wèi)涓凡鏈夊叧閿瓧鐩稿悓鐨劸l撶偣錛屼笉鍐嶆彃鍏?br />    }// Insert BST<br /><br /><font size="2">  void InsertBST(BSTree *Tptr錛孠eyType key)<br />      { <br />//鑻ヤ簩鍙夋帓搴忔爲(wèi) *Tptr涓病鏈夊叧閿瓧涓簁ey錛屽垯鎻掑叆錛屽惁鍒欑洿鎺ヨ繑鍥?br />        BSTNode *f錛?p=*TPtr錛?//p鐨勫垵鍊兼寚鍚戞牴緇撶偣<br />        while(p){ //鏌ユ壘鎻掑叆浣嶇疆<br />          if(p->key==key) return錛?/鏍?wèi)涓凡鏈塳ey錛屾棤欏繪彃鍏?br />          f=p錛?//<span style="color: #ff0000">f淇濆瓨褰撳墠鏌ユ壘鐨勭粨鐐?/span><br />          p=(key<p->key)?p->lchild錛歱->rchild錛?br />            //鑻ey<p->key錛屽垯鍦ㄥ乏瀛愭爲(wèi)涓煡鎵撅紝鍚﹀垯鍦ㄥ彸瀛愭爲(wèi)涓煡鎵?br />         } //endwhile<br />         <span style="color: #ff0000">//f涓烘彃鍏ョ殑緇撶偣</span><br />        p=(BSTNode *)malloc(sizeof(BSTNode))錛?br />        p->key=key錛?p->lchild=p->rchild=NULL錛?//鐢熸垚鏂扮粨鐐?br />        if(*TPtr==NULL) //<span style="color: #ff0000">鍘熸爲(wèi)</span>涓虹┖<br />           *Tptr=p錛?//鏂版彃鍏ョ殑緇撶偣涓烘柊鐨勬牴<br />        else //鍘熸爲(wèi)闈炵┖鏃跺皢鏂扮粨鐐瑰叧p浣滀負(fù)鍏砯鐨勫乏瀛╁瓙鎴栧彸瀛╁瓙鎻掑叆<br />          if(key<f->key)<br />            f->lchild=p錛?br />          else f->rchild=p錛?br />       } //InsertBST</font><br /><br />4銆佸垹闄ょ畻娉?br /><strong>①鍒犻櫎鎿嶄綔鐨勪竴鑸楠?br /></strong>(1) 榪涜鏌ユ壘<br />    銆鏌ユ壘鏃訛紝浠鎸囧悜褰撳墠璁塊棶鍒扮殑緇撶偣錛宲arent鎸囧悜鍏跺弻浜?鍏跺垵鍊間負(fù)NULL)銆傝嫢鏍?wèi)涓壘涓嶅埌琚垹缁撶偣鍒櫂q斿洖錛屽惁鍒欒鍒犵粨鐐規(guī)槸*p銆?br />(2) 鍒犲幓*p銆?br />    銆鍒?p鏃訛紝搴斿皢*p鐨勫瓙鏍?鑻ユ湁)浠嶈繛鎺ュ湪鏍?wèi)涓婁笖淇濇寔BST鎬ц川涓嶅彉銆傛寜*p鐨勫瀛愭暟鐩垎涓夌鎯呭喌榪涜澶勭悊銆?br /><br /><strong>②鍒犻櫎*p緇撶偣鐨勪笁縐嶆儏鍐?/strong><br />(1)*p鏄彾瀛?鍗沖畠鐨勫瀛愭暟涓?)<br />    銆鏃犻』榪炴帴*p鐨勫瓙鏍?wèi)锛屽彧闇灝?p鐨勫弻浜?parent涓寚鍚?p鐨勬寚閽堝煙緗┖鍗沖彲銆?br /><br />(2)*p鍙湁涓涓瀛?child<br />    銆鍙渶灝?child鍜?p鐨勫弻浜茬洿鎺ヨ繛鎺ュ悗錛屽嵆鍙垹鍘?p銆?br />  <font color="#ff0000">娉ㄦ剰錛?/font><br />    銆*p鏃㈠彲鑳芥槸*parent鐨勫乏瀛╁瓙涔熷彲鑳芥槸鍏跺彸瀛╁瓙錛岃?child鍙兘鏄?p鐨勫乏瀛╁瓙鎴栧彸瀛╁瓙錛屾晠鍏辨湁4縐嶇姸鎬併?br />(3)*p鏈変袱涓瀛?br />    銆鍏堜護(hù)q=p錛屽皢琚垹緇撶偣鐨勫湴鍧淇濆瓨鍦╭涓紱鐒跺悗鎵?q鐨勪腑搴忓悗緇?p錛屽茍鍦ㄦ煡鎵捐繃紼嬩腑浠嶇敤parent璁頒綇*p鐨勫弻浜蹭綅緗?q鐨勪腑搴忓悗緇?p涓瀹氭槸*q鐨勫彸瀛愭爲(wèi)涓渶宸︿笅鐨勭粨鐐癸紝瀹冩棤宸﹀瓙鏍?wèi)銆傚洜姝わ紝鍙互灝嗗垹鍘?q鐨勬搷浣滆漿鎹負(fù)鍒犲幓鐨?p鐨勬搷浣滐紝鍗沖湪閲婃斁緇撶偣*p涔嬪墠灝嗗叾鏁版嵁澶嶅埗鍒?q涓紝灝辯浉褰撲簬鍒犲幓浜?q銆?br /><strong>③浜屽弶鎺掑簭鏍?wèi)鍒犻櫎绠楁?/strong> <font color="#ff00ff"><br /></font>鍒嗘瀽錛?br />    銆涓婅堪涓夌鎯呭喌閮借兘緇熶竴鍒版儏鍐?2)錛岀畻娉曚腑鍙渶閽堝鎯呭喌(2)澶勭悊鍗沖彲銆?br />    銆娉ㄦ剰杈圭晫鏉′歡錛氳嫢parent涓虹┖錛岃鍒犵粨鐐?p鏄牴錛屾晠鍒犲幓*p鍚庯紝搴斿皢child緗負(fù)鏍廣?br /><br /><br />綆楁硶錛氬垹闄ゅ叧閿瓧涓簁ey鐨勭粨鐐?<br />void DelBSTNode(BSTree *Tptr錛孠eyType key)<br /> {<br />//鍦ㄤ簩鍙夋帓搴忔爲(wèi)*Tptr涓垹鍘誨叧閿瓧涓簁ey鐨勭粨鐐?br />  BSTNode *parent=NUll錛?p=*Tptr錛?q錛?child錛?br />  while(p)<br /><strong>{ <br /></strong>     //浠庢牴寮濮嬫煡鎵懼叧閿瓧涓簁ey鐨勫緟鍒犵粨鐐?br />    if(p->key==key) break錛?/宸叉壘鍒幫紝璺沖嚭鏌ユ壘寰幆<br />    parent=p錛?//parent鎸囧悜*p鐨勫弻浜?br />    p=(key<p->key)?p->lchild錛歱->rchild錛?//鍦ㄥ叧p鐨勫乏鎴栧彸瀛愭爲(wèi)涓戶緇壘<br /><strong> }  <br />//娉ㄦ剰錛氫篃鍙互浣跨敤<strong>鍩轟簬<font size="2">BOOL SearchBST(BiTree *T錛孠eyType key錛孊iTree *f錛孊iTree &p)</font>鐨勬煡鎵劇畻娉?/strong><br />//緇撴灉鏄?nbsp; parent 璁板綍浜嗚鍒犻櫎緇撶偣鐨勭埗緇撶偣錛宲鎸囧悜瑕佸垹闄ょ殑緇撶偣<br /><br /></strong>      if(!p) return錛?//鎵句笉鍒拌鍒犵粨鐐瑰垯榪斿洖<br />     q=p錛?//q璁頒綇琚垹緇撶偣*p<br />     if(q->lchild && q->rchild) //*q鐨勪袱涓瀛愬潎闈炵┖錛屾晠鎵?q鐨勪腑搴忓悗緇?p<br />    for(parent=q錛宲=q->rchild錛?p->lchild錛?parent=p錛宲=p=->lchild)錛?br />  //鐜板湪鎯呭喌(3)宸茶杞崲涓烘儏鍐?2)錛岃屾儏鍐?1)鐩稿綋浜庢槸鎯呭喌(2)涓璫hild=NULL鐨勭姸鍐?br />    child=(p->lchild)?p->lchild錛歱->rchild錛?/鑻ユ槸鎯呭喌(2)錛屽垯child闈炵┖錛涘惁鍒檆hild涓虹┖<br />    if(!parent) //*p鐨勫弻浜蹭負(fù)絀猴紝璇存槑*p涓烘牴錛屽垹*p鍚庡簲淇敼鏍規(guī)寚閽?br />      *Tptr=child錛?//鑻ユ槸鎯呭喌(1)錛屽垯鍒犲幓*p鍚庯紝鏍?wèi)湄?fù)絀猴紱鍚﹀垯child鍙樹負(fù)鏍?br />    else{ //*p涓嶆槸鏍癸紝灝?p鐨勫瀛愬拰*p鐨勫弻浜茶繘琛岃繛鎺ワ紝*p浠庢爲(wèi)涓婅鎽樹笅<br />      if(p==parent->lchild) //*p鏄弻浜茬殑宸﹀瀛?br />        parent->lchild=child錛?//*child浣滀負(fù)*parent鐨勫乏瀛╁瓙<br />      else parent->rchild=child錛?//*child浣滀負(fù) parent鐨勫彸瀛╁瓙<br />      if(p!=q) //鏄儏鍐?3)錛岄渶灝?p鐨勬暟鎹鍒跺埌*q<br />        q->key=p->key錛?//鑻ヨ繕鏈夊叾瀹冩暟鎹煙浜﹂渶澶嶅埗<br />     } //endif<br />    free(p)錛?/閲婃斁*p鍗犵敤鐨勭┖闂?br />  } //DelBSTNode<br /><strong>緇欏嚭涓夌鎯呭喌鐨勪笉鍚岀畻娉?br /><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><strong>絎竴縐嶏細(xì)</strong></span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US"><br /></span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">btree * DelNode(btree *p)<br />{<br />      if (p->lchild)<br />      {<br />            btree *r = p->lchild;   //r</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鎸囧悜鍏跺乏瀛愭爲(wèi)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">;<br />        while(r->rchild != NULL)//</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鎼滅儲宸﹀瓙鏍?wèi)鐨勬渶鍙寵竟鐨勫彾瀛愮粨鐐?/span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">r<br />        {<br />            r = r->rchild;<br />        }<br />            r->rchild = p->rchild;<br />            btree *q = p->lchild;   //q</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鎸囧悜鍏跺乏瀛愭爲(wèi)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">;<br />            free(p);<br />            return q;<br />      }<br />      else<br />      {<br />            btree *q = p->rchild;   //q</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鎸囧悜鍏跺彸瀛愭爲(wèi)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">;<br />            free(p);<br />            return q;<br />      }<br />}<br /><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><strong>絎簩縐嶏細(xì)</strong></span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US"><br /></span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">btree * DelNode(btree *p)<br />{<br />      if (p->lchild)<br />      {<br />            btree *r = p->lchild;   //r</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鎸囧悜鍏跺乏瀛愭爲(wèi)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">;<br />            btree *prer = p->lchild;   //prer</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鎸囧悜鍏跺乏瀛愭爲(wèi)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">;<br />        while(r->rchild != NULL)//</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鎼滅儲宸﹀瓙鏍?wèi)鐨勬渶鍙寵竟鐨勫彾瀛愮粨鐐?/span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">r<br />        {<br />                  prer = r;<br />            r = r->rchild;<br />        }<br /><br />        if(prer != r)//</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鑻?/span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">r</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">涓嶆槸</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">p</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鐨勫乏瀛╁瓙錛屾妸</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">r</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鐨勫乏瀛╁瓙浣滀負(fù)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">r</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鐨勭埗浜茬殑鍙沖瀛?/span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US"><br />        {<br />                  prer->rchild = r->lchild;<br />                  r->lchild = p->lchild; //</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">琚垹緇撶偣</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">p</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鐨勫乏瀛愭爲(wèi)浣滀負(fù)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">r</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鐨勫乏瀛愭爲(wèi)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US"><br />            }<br />        r->rchild = p->rchild; //</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">琚垹緇撶偣</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">p</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鐨勫彸瀛愭爲(wèi)浣滀負(fù)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">r</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鐨勫彸瀛愭爲(wèi)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US"><br /><br />            free(p);<br />            return r;<br />      }<br />      else<br />      {<br />            btree *q = p->rchild;   //q</span><span style="font-family: 瀹嬩綋; color: #222222; font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鎸囧悜鍏跺彸瀛愭爲(wèi)</span><span style="font-family: 'Verdana','sans-serif'; color: #222222; font-size: 10.5pt; mso-bidi-font-family: 瀹嬩綋; mso-fareast-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">;<br />            free(p);<br />            return q;<br />      }<br />}<br style="mso-special-character: line-break" /><br style="mso-special-character: line-break" /></span><br /><br /></span></strong><img src ="http://www.shnenglu.com/Cass/aggbug/157397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Cass/" target="_blank">Yu_</a> 2011-10-03 10:07 <a href="http://www.shnenglu.com/Cass/archive/2011/10/03/157397.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍝堝か鏇兼爲(wèi)http://www.shnenglu.com/Cass/archive/2011/10/02/157353.htmlYu_Yu_Sun, 02 Oct 2011 09:04:00 GMThttp://www.shnenglu.com/Cass/archive/2011/10/02/157353.htmlhttp://www.shnenglu.com/Cass/comments/157353.htmlhttp://www.shnenglu.com/Cass/archive/2011/10/02/157353.html#Feedback0http://www.shnenglu.com/Cass/comments/commentRss/157353.htmlhttp://www.shnenglu.com/Cass/services/trackbacks/157353.html鍝堝か鏇兼爲(wèi)瀹氫箟涓猴細(xì)緇欏畾n涓潈鍊間綔涓簄涓彾瀛愮粨鐐癸紝鏋勯犱竴媯典簩鍙夋爲(wèi)錛岃嫢甯︽潈璺緞闀垮害杈懼埌鏈灝忥紝縐拌繖鏍風(fēng)殑浜屽弶鏍?wèi)湄?fù)鏈浼樹簩鍙夋爲(wèi)錛屼篃縐頒負(fù)鍝堝か鏇兼爲(wèi)(Huffman tree)銆?br />1銆侀偅涔堜粈涔堟槸鏉冨?/span>錛熶粈涔堟槸璺緞闀垮害錛熶粈涔堟槸甯?span style="color: red">鏉冭礬寰勯暱搴?/span>鍛紵
鏉冨?/span>錛氬搱澶浖鏍?wèi)鐨勬潈鍊兼槸鑷繁瀹氫箟鐨勶紝浠栫殑鐗╃悊鎰忎箟琛ㄧず鏁版嵁鍑虹幇鐨勬鏁般侀鐜囥傚彲浠ョ敤鏍?wèi)鐨勬瘡涓l撶偣鏁版嵁鍩焏ata瀛樻斁涓涓壒瀹氱殑鏁拌〃紺哄畠鐨勫箋?span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">

璺緞闀垮害錛氬湪涓媯墊爲(wèi)涓紝浠庝竴涓粨鐐瑰線涓嬪彲浠ヨ揪鍒扮殑瀛╁瓙鎴栧瓙瀛欑粨鐐逛箣闂寸殑閫氳礬錛岀О涓鴻礬寰勩?span style="color: red">閫氳礬涓垎鏀殑鏁扮洰縐頒負(fù)璺緞闀垮害銆傝嫢瑙勫畾鏍圭粨鐐圭殑灞傛暟涓?錛屽垯浠庢牴緇撶偣鍒扮L灞傜粨鐐圭殑璺緞闀垮害涓篖-1銆?br />
緇撶偣鐨勫甫鏉冭礬寰勯暱搴?/span>涓猴細(xì)浠庢牴緇撶偣鍒拌緇撶偣涔嬮棿鐨勮礬寰勯暱搴︿笌璇ョ粨鐐圭殑鏉冪殑涔樼Н銆?nbsp; 鏍?wèi)涓墍鏈夊彾瀛愯妭鐐圭殑甯︽潈璺緞闀垮害涔嬪拰錛?span style="color: red">WPL=sigma(w*l)

2銆佸搱澶浖鏍?wèi)鐨勬瀯閫犺繃紼嬨傦紙緇撳悎鍥句緥錛?br />鍋囪鏈塶涓潈鍊鹼紝鍒欐瀯閫犲嚭鐨勫搱澶浖鏍?wèi)鏈塶涓彾瀛愮粨鐐廣?n涓潈鍊煎垎鍒涓?w1銆亀2銆?#8230;銆亀n錛屽垯鍝堝か鏇兼爲(wèi)鐨勬瀯閫犺鍒欎負(fù)錛?

銆銆(1) 灝唚1銆亀2銆?#8230;錛寃n鐪嬫垚鏄湁n 媯墊爲(wèi)鐨勬.鏋?姣忔5鏍?wèi)浠呮湁涓涓粨鐐?錛?

銆銆(2) 鍦ㄦ.鏋椾腑閫夊嚭涓や釜鏍圭粨鐐圭殑鏉冨兼渶灝忕殑鏍?wèi)鍚堯q訛紝浣滀負(fù)涓媯墊柊鏍?wèi)鐨勫乏銆佸彸瀛愭爲(wèi)錛屼笖鏂版爲(wèi)鐨勬牴緇撶偣鏉冨間負(fù)鍏跺乏銆佸彸瀛愭爲(wèi)鏍圭粨鐐規(guī)潈鍊間箣鍜岋紱

銆銆(3)浠庢.鏋椾腑鍒犻櫎閫夊彇鐨勪袱媯墊爲(wèi)錛屽茍灝嗘柊鏍?wèi)鍔犲叆妫灄锛?

銆銆(4)閲嶅(2)銆?3)姝ワ紝鐩村埌媯灄涓彧鍓╀竴媯墊爲(wèi)涓烘錛岃鏍?wèi)鍗充负鎵姹傚緱鐨勫搱澶浖鏍?br />
3銆佸搱澶浖鏍?wèi)鐨勫簲鐢ㄥQ氬搱澶浖緙栫爜錛堝墠緙緙栫爜錛?br />鍝堝か鏇肩紪鐮?/strong>

鍦ㄦ暟鎹氫俊涓紝閫氬父闇瑕佹妸瑕佷紶閫佺殑鏂囧瓧杞崲涓虹敱浜岃繘鍒跺瓧絎?鍜?緇勬垚鐨勪簩榪涘埗涓詫紝榪欎釜榪囩▼琚О涔嬩負(fù)緙栫爜(Encoding)銆備緥濡傦紝鍋囪瑕佷紶閫佺殑鐢墊枃涓篋CBBADD錛岀數(shù)鏂囦腑鍙湁A銆丅銆丆銆丏鍥涚瀛楃錛岃嫢榪欏洓涓瓧絎﹂噰鐢ㄨ〃(a)鎵紺虹殑緙栫爜鏂規(guī)錛屽垯鐢墊枃鐨勪唬鐮佷負(fù)11100101001111錛屼唬鐮佹婚暱搴︿負(fù)14銆傝嫢閲囩敤琛?b) 鎵紺虹殑緙栫爜鏂規(guī)錛屽垯鐢墊枃鐨勪唬鐮佷負(fù)0110101011100錛屼唬鐮佹婚暱搴︿負(fù)13銆?/p>



瀛楃闆嗙殑涓嶅悓緙栫爜鏂規(guī)

鍝堝か鏇兼爲(wèi)鍙敤浜庢瀯閫犳婚暱搴︽渶鐭殑緙栫爜鏂規(guī)銆傚叿浣撴瀯閫犳柟娉曞涓嬶細(xì)
璁鵑渶瑕佺紪鐮佺殑瀛楃闆嗕負(fù){d1,d2,…,dn}錛屽悇涓瓧絎﹀湪鐢墊枃涓嚭鐜扮殑嬈℃暟鎴栭鐜囬泦鍚堜負(fù){w1,w2,…,wn}銆備互d1,d2,…,dn浣滀負(fù)鍙跺瓙緇撶偣錛屼互w1,w2,…,wn浣滀負(fù)鐩稿簲鍙跺瓙緇撶偣鐨勬潈鍊兼潵鏋勯犱竴媯靛搱澶浖鏍?wèi)銆傝瀹氬搱澶浖鏍?wèi)涓殑宸﹀垎鏀唬琛?錛屽彸鍒嗘敮浠h〃1錛屽垯浠庢牴緇撶偣鍒板彾瀛愮粨鐐規(guī)墍緇忚繃鐨勮礬寰勫垎鏀粍鎴愮殑0鍜?鐨勫簭鍒椾究涓鴻緇撶偣瀵瑰簲瀛楃鐨勭紪鐮佸氨鏄搱澶浖緙栫爜(Huffman Encoding)銆?/p>

鍦ㄥ緩绔嬩笉絳夐暱緙栫爜涓紝蹇呴』浣夸換浣曚竴涓瓧絎︾殑緙栫爜閮戒笉鏄彟涓涓紪鐮佺殑鍓嶇紑錛岃繖鏍鋒墠鑳戒繚璇佽瘧鐮佺殑鍞竴鎬с備緥濡傦紝鑻ュ瓧絎鐨勭紪鐮佹槸00錛屽瓧絎鐨勭紪鐮佹槸001錛岄偅涔堝瓧絎鐨勭紪鐮佸氨鎴愪簡瀛楃B鐨勭紪鐮佺殑鍚庣紑銆傝繖鏍鳳紝瀵逛簬浠g爜涓?01001錛屽湪璇戠爜鏃跺氨鏃犳硶鍒ゅ畾鏄皢鍓嶄袱浣嶇爜00璇戞垚瀛楃A榪樻槸灝嗗墠涓変綅鐮?01璇戞垚B銆傝繖鏍風(fēng)殑緙栫爜琚О涔嬩負(fù)鍏鋒湁浜屼箟鎬х殑緙栫爜錛屼簩涔夋х紪鐮佹槸涓嶅敮涓鐨勩傝屽湪鍝堝か鏇兼爲(wèi)涓紝姣忎釜瀛楃緇撶偣閮芥槸鍙跺瓙緇撶偣錛屽畠浠笉鍙兘鍦ㄦ牴緇撶偣鍒板叾瀹冨瓧絎︾粨鐐圭殑璺緞涓婏紝鎵浠ヤ竴涓瓧絎︾殑鍝堝か鏇肩紪鐮佷笉鍙兘鏄彟涓涓瓧絎︾殑鍝堝か鏇肩紪鐮佺殑鍓嶇紑錛屼粠鑰屼繚璇佷簡璇戠爜鐨勯潪浜屼箟鎬с?/p>

涓嬪浘灝辨槸鐢墊枃DCBBADD鐨勫搱澶浖鏍?wèi)锛?xì)



4銆佸搱澶浖鏍?wèi)鐨勫疄鐜?/strong>

鐢卞搱澶浖鏍?wèi)鐨勬瀯閫犵畻娉曞彲鐭ワ紝鐢ㄤ竴涓暟緇勫瓨鏀懼師鏉ョ殑n涓彾瀛愮粨鐐瑰拰鏋勯犺繃紼嬩腑涓存椂鐢熸垚鐨勭粨鐐癸紝鏁扮粍鐨勫ぇ灝忎負(fù)2n-1銆傛墍浠ワ紝鍝堝か鏇兼爲(wèi)綾籋uffmanTree涓湁涓や釜鎴愬憳瀛楁錛歞ata鏁扮粍鐢ㄤ簬瀛樻斁緇撶偣錛宭eafNum琛ㄧず鍝堝か鏇兼爲(wèi)鍙跺瓙緇撶偣鐨勬暟鐩傜粨鐐規(guī)湁鍥涗釜鍩燂紝涓涓煙weight錛岀敤浜庡瓨鏀捐緇撶偣鐨勬潈鍊鹼紱涓涓煙lChild錛岀敤浜庡瓨鏀捐緇撶偣鐨勫乏瀛╁瓙緇撶偣鍦ㄦ暟緇勪腑鐨勫簭鍙鳳紱涓涓煙rChild錛岀敤浜庡瓨鏀捐緇撶偣鐨勫彸瀛╁瓙緇撶偣鍦ㄦ暟緇勪腑鐨勫簭鍙鳳紱涓涓煙parent錛岀敤浜庡垽瀹氳緇撶偣鏄惁宸插姞鍏ュ搱澶浖鏍?wèi)涓?/p>

鍝堝か鏇兼爲(wèi)緇撶偣鐨勭粨鏋勪負(fù)錛殀 鏁版嵁 | weight | lChild | rChild | parent |

     public class Node
    {
        char c; //瀛樺偍鐨勬暟鎹紝涓轟竴涓瓧絎?br />        private double weight; //緇撶偣鏉冨?br />        private int lChild; //宸﹀瀛愮粨鐐?br />        private int rChild; //鍙沖瀛愮粨鐐?br />        private int parent; //鐖剁粨鐐?br />        //緇撶偣鏉冨煎睘鎬?br />        public double Weight
        {
            get
            {
                return weight;
            }
            set
            {
                weight = value;
            }
        }
        //宸﹀瀛愮粨鐐瑰睘鎬?br />        public int LChild
        {
            get
            {
                return lChild;
            }
            set
            {
                lChild = value;
            }
        }
        //鍙沖瀛愮粨鐐瑰睘鎬?br />        public int RChild
        {
            get
            {
                return rChild;
            }
            set
            {
                rChild = value;
            }
        }
        //鐖剁粨鐐瑰睘鎬?br />        public int Parent
        {
            get
            {
                return parent;
            }
            set
            {
                parent = value;
            }
        }
        //鏋勯犲櫒
        public Node()
        {
            weight = 0;
            lChild = -1;
            rChild = -1;
            parent = -1;
        }
        //鏋勯犲櫒
        public Node(double weitht)
        {
            this.weight = weitht;
            lChild = -1;
            rChild = -1;
            parent = -1;
        }

        //鏋勯犲櫒
        public Node(int w, int lc, int rc, int p)
        {
            weight = w;
            lChild = lc;
            rChild = rc;
            parent = p;
        }
    }

    public class HuffmanTree
    {
        private Node[] data; //緇撶偣鏁扮粍
        private int leafNum; //鍙跺瓙緇撶偣鏁扮洰
        //绱㈠紩鍣?br />        public Node this[int index]
        {
            get
            {
                return data[index];
            }
            set
            {
                data[index] = value;
            }
        }
        //鍙跺瓙緇撶偣鏁扮洰灞炴?br />        public int LeafNum
        {
            get
            {
                return leafNum;
            }
            set
            {
                leafNum = value;
            }
        }
        //鏋勯犲櫒
        public HuffmanTree(int n)
        {
            data = new Node[2 * n - 1];
            leafNum = n;
        }
        //鍒涘緩鍝堝か鏇兼爲(wèi)
        public void Create(Node[] datain)
        {
            double minL, minR;
            minL = minR = double.MaxValue;
            int lchild, rchild;
            lchild = rchild = -1;

            int length = data.Length;
            //鍒濆鍖栧搱澶浖鏍?br />            for (int i = 0; i < length; i++)
                data[i] = new Node();
            for (int i = 0; i < datain.Length; i++)
                data[i] = datain[i];

            //澶勭悊n涓彾瀛愮粨鐐癸紝寤虹珛鍝堝か鏇兼爲(wèi)
            for (int i = leafNum; i < length; i++)
            {
                //鍦ㄥ叏閮ㄧ粨鐐逛腑鎵炬潈鍊兼渶灝忕殑涓や釜緇撶偣
                for (int j = 0; j < i; j++)
                {
                    if (data[j].Parent == -1)
                    {
                        if (data[j].Weight < minL)
                        {
                            minR = minL;
                            minL = data[j].Weight;
                            rchild = lchild;
                            lchild = j;
                        }
                        else if (data[j].Weight < minR)
                        {
                            minR = data[j].Weight;
                            rchild = j;
                        }
                    }
                }
                data[lchild].Parent = data[rchild].Parent = i;
                data[i].Weight = minL + minR;
                data[i].LChild = lchild;
                data[i].RChild = rchild;
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            HuffmanTree tree = new HuffmanTree(5);
            Node[] nodes = new Node[] { new Node(1), new Node(2), new Node(2.5d), new Node(3), new Node(2.6d) };
            tree.Create(nodes);

            Console.ReadLine();
        }
    }

/////////////////////////////鑺傞夎嚜緗戠粶涓婄殑璧勬枡銆?/p>

Yu_ 2011-10-02 17:04 鍙戣〃璇勮
]]>
浼樺厛闃熷垪http://www.shnenglu.com/Cass/archive/2011/10/02/157339.htmlYu_Yu_Sun, 02 Oct 2011 03:22:00 GMThttp://www.shnenglu.com/Cass/archive/2011/10/02/157339.htmlhttp://www.shnenglu.com/Cass/comments/157339.htmlhttp://www.shnenglu.com/Cass/archive/2011/10/02/157339.html#Feedback0http://www.shnenglu.com/Cass/comments/commentRss/157339.htmlhttp://www.shnenglu.com/Cass/services/trackbacks/157339.html鏈楂樹紭鍏堟潈鐨勫厓绱犮傛瘡涓厓绱犻兘鏈変竴涓紭鍏堟潈鎴栧?br />/////鐢ㄥ爢瀹炵幇浼樺厛闃熷垪
1銆佹妸浼樺厛闃熷垪涓殑鍏冪礌鎸変紭鍏堢駭澶у皬緇勭粐鎴愬爢錛屽爢欏跺厓绱犲叿鏈夋渶澶т紭鍏堢駭銆?br />2銆佷紭鍏堥槦鍒楃殑鎻掑叆涓庡垹闄ゅ彲浠ョ敤鍫嗙殑鎻掑叆涓庡垹闄ゅ疄鐜般?br />3銆佷紭鍏堥槦鍒楀湪瀹氫箟涓簆riority_queue 錛屽湪STL涓?include<queue> 涓疄鐜般?br /> priority_queue<int, vector<int>, greater<int> >qi2;

鍏朵腑
絎簩涓弬鏁頒負(fù)瀹瑰櫒綾誨瀷銆?br />絎笁涓弬鏁頒負(fù)姣旇緝鍑芥暟銆?br />




Yu_ 2011-10-02 11:22 鍙戣〃璇勮
]]>
鍫嗘帓搴?/title><link>http://www.shnenglu.com/Cass/archive/2011/10/01/157298.html</link><dc:creator>Yu_</dc:creator><author>Yu_</author><pubDate>Sat, 01 Oct 2011 08:55:00 GMT</pubDate><guid>http://www.shnenglu.com/Cass/archive/2011/10/01/157298.html</guid><wfw:comment>http://www.shnenglu.com/Cass/comments/157298.html</wfw:comment><comments>http://www.shnenglu.com/Cass/archive/2011/10/01/157298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Cass/comments/commentRss/157298.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Cass/services/trackbacks/157298.html</trackback:ping><description><![CDATA[浼拌榪樿闂棶錛氫粈涔堟槸鍫嗭紝浠涔堟槸鍫嗘帓搴忥紵鍫嗕笌璁$畻鏈哄垎閰嶅唴瀛樼殑鍫嗙浉鍚屽悧錛?br />寰堝璧勬枡緇欏嚭錛氬爢鐨勫畾涔夋槸<br />錛?錛夈乶涓叧閿瓧搴忓垪錛圞l錛孠2錛?#8230;錛孠n錛夌О涓?Heap)錛屽綋涓斾粎褰撹搴忓垪婊¤凍濡備笅鎬ц川(綆縐頒負(fù)鍫嗘ц川)錛?br />ki≤K2i涓攌i≤K2i+1 鎴?nbsp; Ki≥K2i涓攌i≥K2i+1 (1≤i≤ n) //ki鐩稿綋浜庝簩鍙夋爲(wèi)鐨勯潪鍙剁粨鐐癸紝K2i鍒欐槸宸﹀瀛愶紝k2i+1鏄彸瀛╁瓙 <br /><br /> <div id="hvzpftn" class="spctrl"></div>錛?錛夎嫢灝嗘搴忓垪鎵瀛樺偍鐨勫悜閲廟[1..n]鐪嬪仛鏄竴媯?strong>瀹屽叏浜屽弶鏍?/strong>鐨勫瓨鍌ㄧ粨鏋勶紝鍒欏爢瀹炶川涓婃槸婊¤凍濡備笅鎬ц川鐨勫畬鍏ㄤ簩鍙夋爲(wèi)錛? <div id="hvzpftn" class="spctrl"></div>銆銆<strong>鏍?wèi)涓恢M竴闈炲彾緇撶偣鐨勫叧閿瓧鍧囦笉澶т簬(鎴栦笉灝忎簬)鍏跺乏鍙沖瀛?鑻ュ瓨鍦?緇撶偣鐨勫叧閿瓧銆?br /><br /></strong>錛?錛夈佹牴緇撶偣(浜︾О涓哄爢欏?鐨勫叧閿瓧鏄爢閲屾墍鏈夌粨鐐瑰叧閿瓧涓?span style="color: red">鏈灝忚?/span>鐨勫爢縐頒負(fù)<span style="color: red">灝忔牴鍫?/span>錛屽張縐版渶灝忓爢銆傛牴緇撶偣(浜︾О涓哄爢欏?鐨勫叧閿瓧鏄爢閲屾墍鏈夌粨鐐瑰叧閿瓧涓?span style="color: red">鏈澶ц?/span>錛岀О涓哄ぇ鏍瑰爢錛屽張縐?span style="color: red">鏈澶у爢銆?br /><br /></span><span>錛?錛夈佸爢涓換涓瀛愭爲(wèi)浜︽槸鍫嗐?br />錛?錛夈佸爢鍙互瑙嗕負(fù)涓媯靛畬鍏ㄧ殑浜屽弶鏍?wèi)锛屽畬鍏ㄤ簩鍙夋爲(wèi)鐨勪竴涓?#8220;浼樼”鐨勬ц川鏄紝闄や簡鏈搴曞眰涔嬪錛屾瘡涓灞傞兘鏄弧鐨勶紝榪欎嬌寰楀爢鍙互鍒╃敤</span><span style="color: #ff6600">鏁扮粍</span><span>鏉ヨ〃紺猴紙鏅氱殑涓鑸殑浜屽弶鏍?wèi)閫氬父鐢ㄩ摼琛ㄤ綔涓哄熀鏈鍣ㄨ〃紺猴級錛屾瘡涓涓粨鐐瑰搴旀暟緇勪腑鐨勪竴涓厓绱犮?/span><br /><br />閭d箞鍫嗘帓搴忓憿錛?br />鍫嗘帓搴忓叾瀹炲氨鏄皢涓緇勬棤搴忕殑搴忓垪鍙樻垚鍫嗙殑榪囩▼銆佷笅闈㈡垜浠竴璧風(fēng)湅鐪嬪爢鎺掑簭鐨勭畻娉曘?br />2銆佸爢鎺掑簭<br />浠ユ渶澶у爢涓轟緥錛屾楠や負(fù)錛?br />銆銆① 鍏堝皢鍒濆鏂囦歡R[1..n]寤烘垚涓涓ぇ鏍瑰爢,姝ゅ爢涓哄垵濮嬬殑鏃犲簭鍖? <div id="hvzpftn" class="spctrl"></div>銆銆② 鍐嶅皢鍏抽敭瀛楁渶澶х殑璁板綍R[1](鍗沖爢欏?鍜屾棤搴忓尯鐨勬渶鍚庝竴涓褰昍[n]浜ゆ崲錛岀敱姝ゅ緱鍒版柊鐨勬棤搴忓尯R[1..n-1]鍜屾湁搴忓尯R[n]錛屼笖婊¤凍R[1..n-1].keys≤R[n].key <div id="hvzpftn" class="spctrl"></div>銆銆③鐢變簬浜ゆ崲鍚庢柊鐨勬牴R[1]鍙兘榪濆弽鍫嗘ц川錛屾晠搴斿皢褰撳墠鏃犲簭鍖篟[1..n-1]璋冩暣涓哄爢銆傜劧鍚庡啀嬈″皢R[1..n-1]涓叧閿瓧鏈澶х殑璁板綍R[1]鍜岃鍖洪棿鐨勬渶鍚庝竴涓褰昍[n-1]浜ゆ崲錛岀敱姝ゅ緱鍒版柊鐨勬棤搴忓尯R[1..n-2]鍜屾湁搴忓尯R[n-1..n]錛屼笖浠嶆弧瓚沖叧緋籖[1..n-2].keys≤R[n-1..n].keys錛屽悓鏍瘋灝哛[1..n-2]璋冩暣涓哄爢銆? <div id="hvzpftn" class="spctrl"></div>銆銆…… <div id="hvzpftn" class="spctrl"></div>銆銆鐩村埌鏃犲簭鍖哄彧鏈変竴涓厓绱犱負(fù)姝€?nbsp;<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 23px; font-family: simsun; font-size: 14px" class="Apple-style-span"><span id="hvzpftn" class="Apple-converted-space"> </span><br />灝嗕竴涓棤搴忕殑搴忓垪寤烘垚鍫嗙殑榪囩▼瀹為檯涓婃槸涓涓弽澶嶇瓫閫夌殑榪囩▼銆傝嫢灝嗘搴忓垪鐪嬩綔鏄竴媯靛畬鍏ㄤ簩鍙夋爲(wèi)錛屽垯鏈鍚庝竴涓潪緇堢緇撶偣鏄痆n/2](涓嶅ぇ浜巒/2鐨勬暣鏁幫級錛屽洜姝ょ瓫閫夎繃紼嬪彧闇浠嶽n/2]寮濮嬨傝寤烘垚涓涓ぇ欏跺爢錛屽嵆鍏堥夋嫨涓涓兼渶澶х殑鍏冪礌騫朵笌搴忓垪涓殑鏈鍚庝竴涓厓绱犱氦鎹紝鐒跺悗瀵瑰簭鍒楀墠n-1鍏冪礌榪涜絳涢夛紝浠庢柊璋冩暣涓轟竴涓ぇ欏跺爢錛岀洿鍒扮粨鏉熴?span class="Apple-converted-space"> </span><br />綆楁硶鎻忚堪濡備笅錛?span class="Apple-converted-space"> </span><br /> <span id="hvzpftn" class="Apple-converted-space"> </span><br />typedef   int[]   Elem;//閲囩敤欏哄簭瀛樺偍琛ㄧず瀹屽叏浜屽弶鏍?span class="Apple-converted-space"> </span><br /><br />void   HeapAdjust(Elem   &e,int   s,int   m)<span id="hvzpftn" class="Apple-converted-space"> </span><br />{//e涓璼...m鐨勫厓绱犻櫎e[s]涔嬪宸茬粡婊¤凍鍫嗙殑瀹氫箟錛坋[i] <=e[2*i]&&e[i] <=e[2*i+1]<span id="hvzpftn" class="Apple-converted-space"> </span><br />  //鎴杄[i]> =e[2*i]&&e[i]> =e[2*i+1]),璋冩暣e[s]浣跨殑e[s...m]鎴愪負(fù)涓涓ぇ欏跺爢銆?span class="Apple-converted-space"> </span><br />      selem=e[s];<span id="hvzpftn" class="Apple-converted-space"> </span><br />      for(i=2*s;i <=m;i*=2)//娌跨潃鍊艱緝澶х殑鍏冪礌錛堢粨鐐癸級鍚戜笅絳涢?span class="Apple-converted-space"> </span><br />      {<span id="hvzpftn" class="Apple-converted-space"> </span><br />            if(i <m   &&   e[i] <e[i+1])++i;//i涓哄艱緝澶х殑鍏冪礌涓嬫爣<span id="hvzpftn" class="Apple-converted-space"> </span><br />            if(selem> =e[i])break;<span id="hvzpftn" class="Apple-converted-space"> </span><br />            e[s]=e[i];<span id="hvzpftn" class="Apple-converted-space"> </span><br />            s=i;<span id="hvzpftn" class="Apple-converted-space"> </span><br />        }<span id="hvzpftn" class="Apple-converted-space"> </span><br />      e[s]=selem;<span id="hvzpftn" class="Apple-converted-space"> </span><br />}<span id="hvzpftn" class="Apple-converted-space"> </span><br /><br />void   HeapSort(Elem   &e)<span id="hvzpftn" class="Apple-converted-space"> </span><br />{//瀵歸『搴忚〃鎺掑簭<span id="hvzpftn" class="Apple-converted-space"> </span><br />    for(i=e.length/2;i> 0;--i)<span id="hvzpftn" class="Apple-converted-space"> </span><br />            HeapAdjust(e,i,e.length);<span id="hvzpftn" class="Apple-converted-space"> </span><br />    for(i=e.length;i> 1;--i)<span id="hvzpftn" class="Apple-converted-space"> </span><br />    {<span id="hvzpftn" class="Apple-converted-space"> </span><br />          temp=e[1];                     //灝嗗爢涓殑鏈鍚庝竴涓厓绱犱笌絎竴涓厓绱犱氦鎹?span class="Apple-converted-space"> </span><br />          e[1]=e[i];<span id="hvzpftn" class="Apple-converted-space"> </span><br />          e[i]=temp;<span id="hvzpftn" class="Apple-converted-space"> </span><br />          HeapAdjust(H,1,i-1);//璋冩暣1..i-1鐨勫厓绱犳垚涓哄ぇ欏跺爢<span id="hvzpftn" class="Apple-converted-space"> </span><br />      }    <span id="hvzpftn" class="Apple-converted-space"> </span><br />}<br /><br /><br />/////////////////////////////////////////////////////////////<br />浣跨敤鍫嗘帓搴忔敞鎰忕殑闂錛氾細(xì)錛?br /></span></span>1銆佸簭鍒楁槸浠?寮濮嬬殑銆傦紝娉ㄦ剰瀹氫箟錛孯[1..n]錛屾晠瑕佺┖鍑篟[0]銆?br />2銆佸爢鎺掑簭綆楁硶鍒嗕負(fù)涓ら儴鍒嗭細(xì)寤虹珛澶ч《鍫嗗拰鎺掑簭銆?br />3銆佹帓搴忕殑鏈鍧忔椂闂村鏉傚害涓?strong>O(nlogn)</strong>銆傚爢搴忕殑騫沖潎鎬ц兘杈冩帴榪戜簬鏈鍧忔ц兘銆?br />4銆佺敱浜庡緩鍒濆鍫嗘墍闇鐨勬瘮杈冩鏁拌緝澶氾紝鎵浠ュ爢鎺掑簭涓嶉傚疁浜庤褰曟暟杈冨皯鐨勬枃浠躲? <div id="hvzpftn" class="spctrl"></div>5銆併鍫嗘帓搴忔槸灝卞湴鎺掑簭錛岃緟鍔╃┖闂翠負(fù)O(1)錛?瀹冩槸<strong>涓嶇ǔ瀹?/strong>鐨勬帓搴忔柟娉曘?br /><br />闂錛氬綋搴忓垪絀洪棿涓篟[0,1....n]錛涙椂錛岃鎬庝箞鍘諱嬌鐢ㄥ爢鎺掑簭鍛紵鍏冪礌鍚庣Щ涓浣嶏紝榪欐槑鏄句笉鏄竴涓ソ鏂規(guī)硶銆?img src ="http://www.shnenglu.com/Cass/aggbug/157298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Cass/" target="_blank">Yu_</a> 2011-10-01 16:55 <a href="http://www.shnenglu.com/Cass/archive/2011/10/01/157298.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://b27227.com" target="_blank">99xxxx成人网</a>| <a href="http://aass123.com" target="_blank">欧美激情自拍</a>| <a href="http://1116333.com" target="_blank">欧美在线www</a>| <a href="http://maomi54.com" target="_blank">欧美粗暴jizz性欧美20</a>| <a href="http://wwdd44.com" target="_blank">亚洲视频观看</a>| <a href="http://797298.com" target="_blank">欧美aaaaaaaa牛牛影院</a>| <a href="http://filark.com" target="_blank">国产美女精品</a>| <a href="http://6k7a.com" target="_blank">亚洲影院污污.</a>| <a href="http://rezel-zj.com" target="_blank">亚洲人成亚洲人成在线观看</a>| <a href="http://cnxwlm.com" target="_blank">亚洲男人第一网站</a>| <a href="http://www-4157.com" target="_blank">亚洲国内欧美</a>| <a href="http://wanzhixue.com" target="_blank">麻豆国产精品va在线观看不卡</a>| <a href="http://567acg.com" target="_blank">国产精品高清一区二区三区</a>| <a href="http://icciran.com" target="_blank">日韩午夜在线观看视频</a>| <a href="http://xwsj2020.com" target="_blank">美女精品网站</a>| <a href="http://1181318.com" target="_blank">久久精品1区</a>| <a href="http://ccc159.com" target="_blank">国产婷婷色一区二区三区</a>| <a href="http://8222666.com" target="_blank">亚洲线精品一区二区三区八戒</a>| <a href="http://devwang.com" target="_blank">久久亚洲综合网</a>| <a href="http://j88866.com" target="_blank">亚洲第一页中文字幕</a>| <a href="http://www-333410.com" target="_blank">欧美色图首页</a>| <a href="http://cxjzcl.com" target="_blank">国产日产欧美精品</a>| <a href="http://ll992.com" target="_blank">销魂美女一区二区三区视频在线</a>| <a href="http://xxdd51.com" target="_blank">欧美中文在线免费</a>| <a href="http://fuwu56.com" target="_blank">欧美成人69</a>| <a href="http://y7y7s.com" target="_blank">91久久精品视频</a>| <a href="http://77777gao.com" target="_blank">你懂的视频欧美</a>| <a href="http://sese912.com" target="_blank">美腿丝袜亚洲色图</a>| <a href="http://wwwzmcc1.com" target="_blank">亚洲欧美韩国</a>| <a href="http://er65.com" target="_blank">欧美福利电影在线观看</a>| <a href="http://sz-jyqj.com" target="_blank">亚洲精品久久久久中文字幕欢迎你</a>| <a href="http://yujiaosanye.com" target="_blank">美女啪啪无遮挡免费久久网站</a>| <a href="http://haose23.com" target="_blank">欧美日本不卡高清</a>| <a href="http://xsxcn.com" target="_blank">亚洲一区二区三区欧美</a>| <a href="http://chongpiapia.com" target="_blank">欧美在线播放一区二区</a>| <a href="http://b1768.com" target="_blank">亚洲夜间福利</a>| <a href="http://080973.com" target="_blank">欧美精品成人一区二区在线观看</a>| <a href="http://http456446.com" target="_blank">亚洲精品九九</a>| <a href="http://www-188445.com" target="_blank">欧美在线视频观看免费网站</a>| <a href="http://by4433.com" target="_blank">亚洲网友自拍</a>| <a href="http://yw6632.com" target="_blank">欧美一区二区网站</a>| <a href="http://www930666.com" target="_blank">黄色精品网站</a>| <a href="http://6673328.com" target="_blank">亚洲片区在线</a>| <a href="http://coerverbeijing.com" target="_blank">亚洲电影免费观看高清完整版在线</a>| <a href="http://www-67499.com" target="_blank">一区二区三区四区五区精品视频</a>| <a href="http://qqkanp.com" target="_blank">国产精品videossex久久发布</a>| <a href="http://thisisfil.com" target="_blank">亚洲一区二区在线免费观看</a>| <a href="http://as777as.com" target="_blank">老巨人导航500精品</a>| <a href="http://shuoqe.com" target="_blank">国产精品99久久久久久人</a>| <a href="http://739191g.com" target="_blank">开心色5月久久精品</a>| <a href="http://by722777.com" target="_blank">久久久91精品国产一区二区精品</a>| <a href="http://cao3e8c8.com" target="_blank">久久久精品日韩欧美</a>| <a href="http://599107.com" target="_blank">99re6这里只有精品</a>| <a href="http://exsecular.com" target="_blank">久久夜色精品国产亚洲aⅴ</a>| <a href="http://jxyptsw.com" target="_blank">日韩视频一区二区三区在线播放免费观看 </a>| <a href="http://shanghaijiagu.com" target="_blank">欧美自拍偷拍午夜视频</a>| <a href="http://chaoxibg.com" target="_blank">亚洲女性裸体视频</a>| <a href="http://goldure.com" target="_blank">欧美视频成人</a>| <a href="http://8xxjj.com" target="_blank">亚洲影音一区</a>| <a href="http://1000kongbao.com" target="_blank">亚洲国产精品一区制服丝袜</a>| <a href="http://6h8c.com" target="_blank">女人色偷偷aa久久天堂</a>| <a href="http://110488.com" target="_blank">国产一区二区三区精品欧美日韩一区二区三区 </a>| <a href="http://aidou28.com" target="_blank">欧美大秀在线观看</a>| <a href="http://lukushe.com" target="_blank">在线免费不卡视频</a>| <a href="http://www44448.com" target="_blank">麻豆久久精品</a>| <a href="http://bkksd.com" target="_blank">亚洲激情另类</a>| <a href="http://yanuoxun.com" target="_blank">国产一区二区按摩在线观看</a>| <a href="http://www3344cao.com" target="_blank">亚洲综合不卡</a>| <a href="http://tubcup.com" target="_blank">一个色综合导航</a>| <a href="http://kasimcoal.com" target="_blank">久久精品国产欧美激情</a>| <a href="http://www-55125.com" target="_blank">久久久www成人免费毛片麻豆</a>| <a href="http://jxjx11.com" target="_blank">国产精品制服诱惑</a>| <a href="http://huohuoglobal.com" target="_blank">欧美在线综合</a>| <a href="http://kxm6868.com" target="_blank">欧美a级一区</a>| <a href="http://483134.com" target="_blank">a4yy欧美一区二区三区</a>| <a href="http://555888666.com" target="_blank">一区二区av在线</a>| <a href="http://www-6410c.com" target="_blank">99亚洲一区二区</a>| <a href="http://hhjc7.com" target="_blank">午夜精品久久久久久久男人的天堂</a>| <a href="http://kanzhelu31.com" target="_blank">欧美在线1区</a>| <a href="http://wawabt.com" target="_blank">久久综合色8888</a>| <a href="http://zgslwtc.com" target="_blank">国产精品亚洲综合一区在线观看</a>| <a href="http://www01614.com" target="_blank">欧美国产三级</a>| <a href="http://xxoo668.com" target="_blank">一区二区三区视频在线</a>| <a href="http://sxhrdyb.com" target="_blank">欧美成人在线免费观看</a>| <a href="http://fxsdcj.com" target="_blank">亚洲精品在线视频</a>| <a href="http://50ud.com" target="_blank">亚洲精品视频啊美女在线直播</a>| <a href="http://88xjj.com" target="_blank">欧美日韩三级一区二区</a>| <a href="http://www5909.com" target="_blank">欧美激情一区二区三区高清视频</a>| <a href="http://qq666qq.com" target="_blank">99re66热这里只有精品4</a>| <a href="http://aqdit2022.com" target="_blank">国产精品海角社区在线观看</a>| <a href="http://6666345.com" target="_blank">国产日韩综合</a>| <a href="http://9a9u.com" target="_blank">亚洲精品一区二区网址</a>| <a href="http://dayomall.com" target="_blank">欧美人妖另类</a>| <a href="http://7269003.com" target="_blank">亚洲一区在线免费</a>| <a href="http://zw1019.com" target="_blank">毛片av中文字幕一区二区</a>| <a href="http://www17727.com" target="_blank">亚洲毛片在线观看</a>| <a href="http://ooo789.com" target="_blank">国产精品激情av在线播放</a>| <a href="http://848585.com" target="_blank">久久精品国产亚洲一区二区三区</a>| <a href="http://k82net.com" target="_blank">亚洲国产成人久久综合</a>| <a href="http://677968.com" target="_blank">国产欧美欧美</a>| <a href="http://ziwufuren.com" target="_blank">免费一级欧美在线大片</a>| <a href="http://xxxbobba.com" target="_blank">在线综合亚洲</a>| <a href="http://jizz16.com" target="_blank">欧美黄色免费网站</a>| <a href="http://xhamster0.com" target="_blank">午夜精品亚洲</a>| <a href="http://7redy.com" target="_blank">亚洲国产欧美一区二区三区久久 </a>| <a href="http://8222666.com" target="_blank">欧美深夜福利</a>| <a href="http://9924338.com" target="_blank">蜜臀91精品一区二区三区</a>| <a href="http://dacellflex.com" target="_blank">久久全国免费视频</a>| <a href="http://2996611.com" target="_blank">亚洲精品日韩欧美</a>| <a href="http://9511331.com" target="_blank">亚洲欧美在线一区</a>| <a href="http://www-137999.com" target="_blank">亚洲国产成人在线播放</a>| <a href="http://783956.com" target="_blank">国产精品免费一区二区三区在线观看</a>| <a href="http://4448884.com" target="_blank">亚洲激情专区</a>| <a href="http://tinganji.com" target="_blank">午夜精品免费</a>| <a href="http://55psd.com" target="_blank">亚洲精品久久嫩草网站秘色</a>| <a href="http://hy8r.com" target="_blank">国产精品一区二区在线观看不卡 </a>| <a href="http://989766.com" target="_blank">欧美日韩亚洲一区二区三区</a>| <a href="http://605012.com" target="_blank">欧美在线欧美在线</a>| <a href="http://wce-expo.com" target="_blank">亚洲私人影院</a>| <a href="http://7811c.com" target="_blank">欧美综合77777色婷婷</a>| <a href="http://wwwsfsf11.com" target="_blank">国产日韩欧美不卡在线</a>| <a href="http://zztto7.com" target="_blank">欧美精品一区在线发布</a>| <a href="http://123-sj.com" target="_blank">久久免费精品视频</a>| <a href="http://000695.com" target="_blank">欧美一区2区三区4区公司二百</a>| <a href="http://erzhuzi.com" target="_blank">99亚洲视频</a>| <a href="http://133255.com" target="_blank">亚洲精品自在在线观看</a>| <a href="http://wwwiqiuxia.com" target="_blank">亚洲盗摄视频</a>| <a href="http://www18818.com" target="_blank">久久躁日日躁aaaaxxxx</a>| <a href="http://www-452.com" target="_blank">亚洲制服少妇</a>| <a href="http://naturalgiftfashion.com" target="_blank">在线视频你懂得一区二区三区</a>| <a href="http://9xxpp.com" target="_blank">亚洲国产欧美久久</a>| <a href="http://avtaobao7788.com" target="_blank">在线观看欧美一区</a>| <a href="http://k37b.com" target="_blank">欧美日韩亚洲视频</a>| <a href="http://baoyou118.com" target="_blank">欧美高清影院</a>| <a href="http://800716.com" target="_blank">欧美理论片在线观看</a>| <a href="http://sihu1515hh.com" target="_blank">欧美不卡三区</a>| <a href="http://ttmitch.com" target="_blank">欧美高清在线精品一区</a>| <a href="http://987328.com" target="_blank">日韩一区二区精品在线观看</a>| <a href="http://sese699.com" target="_blank">国产婷婷色一区二区三区四区</a>| <a href="http://5gn4y.com" target="_blank">久久精品国产成人</a>| <a href="http://a718fun.com" target="_blank">亚洲综合第一</a>| <a href="http://xpfuli.com" target="_blank">亚洲精品视频免费</a>| <a href="http://yyy922.com" target="_blank">亚洲精品乱码久久久久久蜜桃91</a>| <a href="http://021-job.com" target="_blank">久久精品亚洲精品</a>| <a href="http://jiajianpei.com" target="_blank">在线激情影院一区</a>| <a href="http://www-26333com.com" target="_blank">黄色工厂这里只有精品</a>| <a href="http://hu62.com" target="_blank">精品va天堂亚洲国产</a>| <a href="http://649929.com" target="_blank">欧美日韩精品一区二区天天拍小说</a>| <a href="http://3wbb.com" target="_blank">亚洲欧美一区二区三区在线</a>| <a href="http://ww3838.com" target="_blank">亚洲国产日韩欧美在线99</a>| <a href="http://8842aa.com" target="_blank">欧美激情精品久久久久久变态</a>| <a href="http://dsjgqc.com" target="_blank">欧美激情一区二区三区不卡</a>| <a href="http://avtbr123.com" target="_blank">亚洲第一视频</a>| <a href="http://nachang5117.com" target="_blank">亚洲人永久免费</a>| <a href="http://xxxbobba.com" target="_blank">正在播放亚洲</a>| <a href="http://zhuankee.com" target="_blank">欧美一区91</a>| <a href="http://llamkos.com" target="_blank">麻豆精品视频在线</a>| <a href="http://www94816.com" target="_blank">欧美日韩亚洲一区三区</a>| <a href="http://7redy.com" target="_blank">国产精品久久久久久超碰 </a>| <a href="http://www-tk3333.com" target="_blank">葵司免费一区二区三区四区五区</a>| <a href="http://choaoxing.com" target="_blank">久久久久久91香蕉国产</a>| <a href="http://nbpacking.com" target="_blank">美国十次了思思久久精品导航</a>| <a href="http://3531888.com" target="_blank">欧美成熟视频</a>| <a href="http://ddh345.com" target="_blank">99在线热播精品免费99热</a>| <a href="http://jrtkpx.com" target="_blank">久久久91精品国产</a>| <a href="http://2ejj.com" target="_blank">欧美岛国在线观看</a>| <a href="http://www308eee.com" target="_blank">一本一本大道香蕉久在线精品</a>| <a href="http://junhuatesu.com" target="_blank">亚洲综合国产激情另类一区</a>| <a href="http://e789a.com" target="_blank">亚洲日本欧美</a>| <a href="http://tongrenyaoye.com" target="_blank">亚洲国产另类久久久精品极度</a>| <a href="http://555yye.com" target="_blank">亚洲精品中文字幕女同</a>| <a href="http://xindefalv.com" target="_blank">亚洲伊人网站</a>| <a href="http://556995.com" target="_blank">美女视频黄a大片欧美</a>| <a href="http://xhs1039.com" target="_blank">欧美日韩亚洲免费</a>| <a href="http://xianconnector.com" target="_blank">韩国三级电影久久久久久</a>| <a href="http://0061366.com" target="_blank">亚洲精品欧美极品</a>| <a href="http://556626.com" target="_blank">欧美一区观看</a>| <a href="http://submro.com" target="_blank">亚洲国产一区二区视频</a>| <a href="http://97aixxxx.com" target="_blank">午夜视频在线观看一区二区三区</a>| <a href="http://eshop999.com" target="_blank">蜜臀91精品一区二区三区</a>| <a href="http://www-401313.com" target="_blank">91久久精品视频</a>| <a href="http://ziwufuren.com" target="_blank">欧美亚洲免费电影</a>| <a href="http://qqcf9900.com" target="_blank">欧美成人在线免费观看</a>| <a href="http://sikixixw12.com" target="_blank">国产热re99久久6国产精品</a>| <a href="http://kk553.com" target="_blank">亚洲激情成人</a>| <a href="http://www668889.com" target="_blank">久久精品人人</a>| <a href="http://k91cm.com" target="_blank">aa日韩免费精品视频一</a>| <a href="http://dk13studio.com" target="_blank">久久亚洲国产精品一区二区</a>| <a href="http://xing69.com" target="_blank">欧美日韩另类国产亚洲欧美一级</a>| <a href="http://26mmmm.com" target="_blank">久久av资源网</a>| <a href="http://zj-jufeng.com" target="_blank">欧美激情黄色片</a>| <a href="http://aa224.com" target="_blank">一区二区三区四区五区精品</a>| <a href="http://56lw.com" target="_blank">久久男人资源视频</a>| <a href="http://133868.com" target="_blank">国产精品视频yy9299一区</a>| <a href="http://345fz.com " target="_blank">亚洲精品国产视频</a>| <a href="http://wwwq4yy.com" target="_blank">久久精品天堂</a>| <a href="http://www-90443.com" target="_blank">亚洲愉拍自拍另类高清精品</a>| <a href="http://www-35777.com" target="_blank">欧美国产国产综合</a>| <a href="http://337105.com" target="_blank">尤物九九久久国产精品的特点</a>| <a href="http://feiniao168.com" target="_blank">亚洲一级黄色av</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>