?? hf.java
字號:
package haff;
import javax.swing.*;
import java.util.*;
public class HF
{
public static void main(String[] args)
{
String input;
char[] abcdef={'a','b','c','d','e','f'};
int n=6;
int[] num=new int[6];
for(int i=0;i<6;i++)
num[i]=0;
input=JOptionPane.showInputDialog("請輸入字符串");
for(int i=0;i<input.length();i++)
{
int a=(int)(input.charAt(i));
switch (a)
{ case (int)'a':
num[0]++;
break;
case (int)'b':
num[1]++;
break;
case (int)'c':
num[2]++;
break;
case (int)'d':
num[3]++;
break;
case (int)'e':
num[4]++;
break;
case (int)'f':
num[5]++;
break;
}
}
HaffmanTree myHaff=new HaffmanTree(n);
HaffNode[] node=new HaffNode[2*n+1];
Code[] haffCode=new Code[n];
myHaff.haffman(num,node);
myHaff.haffmanCode(node,haffCode);
for(int i=0;i<n;i++)
{
System.out.print("字符"+abcdef[i]+"的權重Weight="+(double)(haffCode[i].weight)*100/(input.length())+"% 編碼= ");
for(int j=haffCode[i].start+1;j<n;j++)
System.out.print(haffCode[i].bit[j]);
System.out.println();
}
/* for(int i=0;i<6;i++)
{
num[i]=num[i]/(double)(input.length());
}
for(int i=0;i<6;i++)
System.out.println(num[i]); */
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -