⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hf.java

📁 哈夫曼树的实现
💻 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 + -