c++哈夫曼樹實現(xiàn)-創(chuàng)新互聯(lián)

#include
using namespace std;

馬鞍山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

struct Tpoint {
?int weight;
?int lchild;
?int rchild;
?int parent;
};

void INIT(Tpoint* T,int n) { ? ? ? ? ? ? ? ? ? ? ? ?//初始化哈夫曼樹
?for (int i = 1; i<= 2 * n - 1; i++) {
??? ?T[i].lchild = 0;
??? ?T[i].rchild = 0;
??? ?T[i].parent = 0;
?}
?int weight;
?for (int i = 1; i<= n; i++) {
??? ?cin >>weight;
??? ?T[i].weight = weight;
?}
}

void Show(Tpoint* T,int n) { ? ? //展示二叉樹
?for (int i = 1; i<= ?2 * n - 1; i++) {
??? ?cout<< i<<"\t"< ?}
}

void SelectMin(Tpoint* T, int n, int& m1, int& m2) { ?//找到i之前且雙親為0的最小兩個結(jié)點
?for (int i = 1; i<= n; i++) {
??? ?if (T[i].parent != 0)
??? ??? ?continue;
??? ?if (T[m1].weight >T[i].weight)
??? ??? ?m1 = i;
?}
?for (int i = 1; i<= n; i++) {
??? ?if (T[i].parent != 0 || i == m1)
??? ??? ?continue;
??? ?if (T[m2].weight >T[i].weight)
??? ??? ?m2 = i;
?}
}

void BuildHuffman(Tpoint* T, int n) { ?//生成huffman樹
?int m1=1, m2;
?for (int i = n + 1; i<= 2 * n - 1; i++) {
??? ?m1 = 0, m2 = 0;
??? ?SelectMin(T, i - 1, m1, m2);
??? ?T[m1].parent = i ;
??? ?T[m2].parent = i ;
??? ?T[i].lchild = m1;
??? ?T[i].rchild = m2;
??? ?T[i].weight = T[m1].weight + T[m2].weight;
?}
}

int main() {
?Tpoint T[100];
?T[0].weight = 1000;
?int n;
?cout<< "輸入哈夫曼樹葉子節(jié)點數(shù)";
?cin >>n;
?cout<< endl;
?INIT(T,n);
?BuildHuffman(T, n);
?Show(T,n);
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章標(biāo)題:c++哈夫曼樹實現(xiàn)-創(chuàng)新互聯(lián)
文章起源:http://muchs.cn/article38/ddossp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計網(wǎng)站設(shè)計、用戶體驗、網(wǎng)站排名、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營