c語言實現霍夫曼樹

2021-09-01 11:35:53 字數 1795 閱讀 8395

#include

#include

#include

typedef

struct

htnode;

htnode sss[26]

;int sum=0;

void

htcd

(char str)

}if(flag==0)

}for

(i=0

;i) m=(2

*sum)-1

;for

(i=0

;i)for

(;i<=m;i++

)for

(i=0

;i) counter=sum;

for(i=sum;ifor(j=

0;jcounter++

; sss[min1s1]

.parent=i;

sss[min2s2]

.parent=i;

sss[i]

.lchild=min1s1;

sss[i]

.rchild=min2s2;

sss[i]

.weight=sss[min1s1]

.weight+sss[min2s2]

.weight;

}printf

("建好後的樹為:\n");

for(j=

0;j)strrev

(tempcd)

;strcpy

(sss[j]

.cd,tempcd)

;strcpy

(tempcd,voidone);}

for(j=

0;j)printf

("原始碼編碼後為:");

for(i=

0;str[i]

!='\0'

;i++)}

printf

("\n");

}void

httra

(char str)

j++;}

}int

main()

if((fp=

fopen

("d:\\code.txt"

,"w"))

==null

)printf

("開啟檔案失敗,不能輸出編碼字典\n");

else

if(process==1)

rewind

(fp)

;fclose

(fp);}

if((fp=

fopen

("d:\\resultfile.txt"

,"w"))

==null

)printf

("開啟檔案失敗,不能輸出編碼\n");

else

if(process==1)

}fprintf

(fp,

"2")

;rewind

(fp)

;fclose

(fp)

;printf

("編碼已寫好\n");

}printf

("請輸入要進行解碼的檔案的路徑\n");

scanf

("%s"

,&acc);if

((fp=

fopen

(acc,

"r"))==

null

)printf

("開啟檔案失敗,不能讀取解碼");

else

if(process==1)

}

字典樹C語言實現

又稱單詞查詢樹,trie樹,是一種 樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的 字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比 雜湊樹高。include include de...

佇列實現霍夫曼樹

前面一節我們知道了,怎樣去建立乙個哈夫曼樹,這一節我們來看看哈夫曼編碼。思想 得到哈夫曼樹後,自頂向下按路徑編號,指向左節點的邊編號0,指向右節點的邊編號1,從根到葉節點的所有邊上的0和1連線起來,就是葉子節點中字元的哈夫曼編碼。下圖體現了哈夫曼編碼的過程 哈夫曼樹結點 typedef struct...

C語言實現哈夫曼樹

include include typedef struct nodebinode void show binode root if root r null 哈夫曼樹 void a1 權值陣列,為方便直接從小到大有序 int n 6,x,y,z,i,j binode root null binode...