锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品免费久久久久久久,精品人妻久久久久久888,久久久久久免费一区二区三区 http://m.shnenglu.com/Marcky/archive/2009/09/28/97474.htmlMarcky Marcky Mon, 28 Sep 2009 09:49:00 GMT http://m.shnenglu.com/Marcky/archive/2009/09/28/97474.html http://m.shnenglu.com/Marcky/comments/97474.html http://m.shnenglu.com/Marcky/archive/2009/09/28/97474.html#Feedback 0 http://m.shnenglu.com/Marcky/comments/commentRss/97474.html http://m.shnenglu.com/Marcky/services/trackbacks/97474.html typedef struct _HTNode { unsigned int weight; /* 鏉冨?nbsp; */ unsigned int parent; /* 鐖惰妭鐐圭儲(chǔ)寮?nbsp; */ unsigned int lchild; /* 宸﹀瀛愮儲(chǔ)寮?nbsp; */ unsigned int rchild; /* 鍙沖瀛愮儲(chǔ)寮?nbsp; */ } HTNode, * HuffmanTree; /* 鍔ㄦ佸垎閰嶆暟緇勫瓨鍌ㄥ搱澶浖鏍?nbsp; */ typedef char ** HuffmanCode; /* 鍔ㄦ佸垎閰嶆暟緇勫瓨鍌ㄥ搱澶浖緙栫爜琛?nbsp; */ /* 浠巋t鐨?锝瀗鐨勮妭鐐逛腑鎵懼嚭鏉冨兼渶灝忕殑涓や釜鑺傜偣錛屽垎鍒瓨?shù)簬s1, s2涓?nbsp; */ void Select(HuffmanTree ht, int n, int * s1, int * s2) { int i; * s1 = 0 ; * s2 = 0 ; /* 璁劇疆s1, s2鍒板紑濮嬩袱涓猵arent絳変簬0鐨勮妭鐐逛綅緗?/span>*/ for (i = 1 ; i <= n; ++ i) { if ( * s1 != 0 && * s2 != 0 ) break ; if (ht[i].parent == 0 ) * s1 == 0 ? * s1 = i : * s2 = i; } /* 鎵懼嚭ht涓璸arent絳変簬0錛屼笖鏉冨兼渶灝忕殑涓や釜鑺傜偣浣嶇疆錛屽垎鍒瓨?shù)簬s1, s2涓?/span>*/ for ( ; i <= n; ++ i) { if (ht[i].parent != 0 ) continue ; if ( (ht[ * s1].weight > ht[ * s2].weight) && (ht[ * s1].weight > ht[i].weight)) * s1 = i; else if ( (ht[ * s2].weight > ht[ * s1].weight) && (ht[ * s2].weight > ht[i].weight)) * s2 = i; } } /* 閫氳繃w瀛樺偍鐨刵涓潈鍊鹼紝鏉ュ垱寤轟竴棰楀搱澶浖鏍? ht_ptr鎸囧悜榪欓鍝堝か鏇兼爲(wèi) */ void CreateHuffmanTree(HuffmanTree * ht_ptr, int * w, int n) { int m; int i; int s1, s2; HuffmanTree p; if (n <= 1 ) return ; m = 2 * n - 1 ; /* n涓瓧絎︼紝闇瑕?n-1涓┖闂存潵瀛樺偍鏁撮huffman tree */ * ht_ptr = (HuffmanTree)malloc( (m + 1 ) * sizeof (HTNode)); /* 0鍙峰崟鍏冧笉鐢?nbsp; */ for (p = * ht_ptr + 1 , i = 1 ; i <= n; ++ i, ++ p, ++ w) { /* 鍒濆鍖栨暟緇勪腑鍓峮涓崟鍏冨瓨鍌ㄧ殑瀛楃 */ p-> weight = * w; p -> parent = 0 ; p -> lchild = 0 ; p -> rchild = 0 ; } for ( ; i <= m; ++ i, ++ p) { /* 鍒濆鍖栨暟緇勪腑鍓╀綑鐨勫崟鍏?nbsp; */ p-> weight = 0 ; p -> parent = 0 ; p -> lchild = 0 ; p -> rchild = 0 ; } for (i = n + 1 ; i <= m; ++ i) { Select( * ht_ptr, i - 1 , & s1, & s2); /* 璁劇疆s1, s2鐨勭埗浜蹭負(fù)i */ (* ht_ptr + s1) -> parent = i; ( * ht_ptr + s2) -> parent = i; /* 璁劇疆i鐨勫乏瀛╁瓙涓簊1, 鍙沖瀛愪負(fù)s2 */ (* ht_ptr + i) -> lchild = s1; ( * ht_ptr + i) -> rchild = s2; /* 璁劇疆i鐨勬潈鍊間負(fù)s1, s2涔嬪拰 */ (* ht_ptr + i) -> weight = ( * ht_ptr + s1) -> weight + ( * ht_ptr + s2) -> weight; } } /* 瀵筯t_ptr瀛樺偍鐨勫搱澶浖鏍?wèi)鐨刵涓彾瀛愯妭鐐硅繘琛屽搱澶浖緙栫爜 */ void HuffmanCoding(HuffmanTree * ht_ptr, HuffmanCode * hc_ptr, int n) { int i; int start; char * cd = NULL; * hc_ptr = (HuffmanCode)malloc( (n + 1 ) * sizeof ( char * )); cd = ( char * )malloc(n * sizeof ( char )); cd[n - 1 ] = ' \0 ' ; for (i = 1 ; i <= n; ++ i) { start = n - 1 ; int current, father; for (current = i, father = ( * ht_ptr + i) -> parent; /* 浠庡彾瀛愯妭鐐瑰紑濮嬶紝騫跺彇寰楃埗鑺傜偣father */ father != 0 ; /* 鐖惰妭鐐逛負(fù)0鏃跺強(qiáng)鍒拌揪浜?jiǎn)鏍硅妭鐐?nbsp; */ current = father, father = ( * ht_ptr + father) -> parent) { /* 閫愭笎鍚戞牴鑺傜偣闈犳嫝 */ if ( ( * ht_ptr + father) -> lchild == current) /* 褰撳墠鑺傜偣涓哄乏瀛╁瓙 */ cd[-- start] = ' 0 ' ; else cd[-- start] = ' 1 ' ; } * ( * hc_ptr + i) = ( char * )malloc( (n - start) * sizeof ( char )); strcpy( * ( * hc_ptr + i), & cd[start]); } free(cd); }
]]> 浜屽弶鏍?wèi)鐨勫垱寰忓強(qiáng)閬嶅巻锛堥掑綊浠g爜錛?/title> http://m.shnenglu.com/Marcky/archive/2009/09/24/97173.htmlMarcky Marcky Thu, 24 Sep 2009 14:33:00 GMT http://m.shnenglu.com/Marcky/archive/2009/09/24/97173.html http://m.shnenglu.com/Marcky/comments/97173.html http://m.shnenglu.com/Marcky/archive/2009/09/24/97173.html#Feedback 0 http://m.shnenglu.com/Marcky/comments/commentRss/97173.html http://m.shnenglu.com/Marcky/services/trackbacks/97173.html typedef enum _STATUS {ERROR, OK} STATUS; typedef struct _BiTNode { char data; struct _BiTNode * lchild; struct _BiTNode * rchild; } BiTNode, * BiTree; /* 鍒涘緩浜屽弶鏍?/span>*/ STATUS CreateBiTree(BiTree * T) { /* 鎸夊厛搴忔搴忚緭鍏ヤ簩鍙夋爲(wèi)鑺傜偣鐨勫鹼紝絀烘牸琛ㄧず絀烘爲(wèi)銆?/span>*/ char ch; scanf( " %c " , & ch); if (ch == ' ' ) { * T = NULL; } else { if ( ! ( * T = (BiTNode * )malloc( sizeof (BiTNode)))) exit( - 1 ); ( * T) -> data = ch; // 鐢熸垚鏍硅妭鐐?/span> CreateBiTree( & (( * T) -> lchild)); // 鏋勯犲乏瀛愭爲(wèi) CreateBiTree( & (( * T) -> rchild)); // 鏋勯犲彸瀛愭爲(wèi) } return OK; } /* 涓簭閬嶅巻浜屽弶鏍?/span>*/ STATUS InOrderTraverse(BiTree * T) { if ( * T) { if (InOrderTraverse( & (( * T) -> lchild))) printf( " %c " , ( * T) -> data); if (InOrderTraverse( & (( * T) -> rchild))) return OK; return ERROR; } else { return OK; } }
]]>
日本精品久久久久影院日本 |
亚洲伊人久久大香线蕉综合图片 |
久久国产精品久久久 |
亚洲国产精品久久久久久 |
久久精品国产精品亜洲毛片 |
久久精品中文字幕大胸 |
国产三级久久久精品麻豆三级
|
久久久久国色AV免费观看 |
亚洲国产成人精品无码久久久久久综合
|
久久精品国产精品亜洲毛片 |
亚洲精品国产字幕久久不卡 |
久久精品一区二区 |
一本一道久久a久久精品综合 |
亚洲精品乱码久久久久久蜜桃图片 |
久久99精品国产99久久 |
亚洲伊人久久成综合人影院 |
女人香蕉久久**毛片精品 |
中文字幕人妻色偷偷久久 |
久久av免费天堂小草播放 |
久久大香香蕉国产 |
色播久久人人爽人人爽人人片AV |
麻豆精品久久久一区二区 |
亚洲精品无码久久一线 |
亚洲欧美另类日本久久国产真实乱对白
|
精品国产乱码久久久久久1区2区 |
香蕉99久久国产综合精品宅男自 |
久久综合九色综合97_久久久 |
日产精品久久久一区二区 |
亚洲七七久久精品中文国产 |
国产精品美女久久久免费 |
2021久久精品国产99国产精品 |
久久精品国产日本波多野结衣
|
人妻精品久久久久中文字幕69
|
青草影院天堂男人久久 |
久久99免费视频 |
久久久久综合网久久 |
潮喷大喷水系列无码久久精品
|
国产三级精品久久 |
婷婷综合久久狠狠色99h |
国产午夜精品久久久久九九 |
久久久久国产亚洲AV麻豆 |