编写一个程序,利用哈夫曼树求取哈夫曼编码。构造一棵哈夫曼树并进行哈夫曼编码。实验步骤: ①、在编辑环境中新建程序,输入程序内

废话不多说,直接上代码,一共四个文件

第一个TriElement

public class TriElement {
		int data;      //根节点数据
		int parent,left,right;   //右子树
		
		public TriElement(int data,int parent,int left,int right){
		  this.data = data;
		  this.parent = parent;
		  this.left = left;
		  this.right = right;
		 }
		public TriElement(int data){this(data,-1,-1,-1);}
		public TriElement(){this(0);}
		public String toString(){
			return"("+this.data+","+this.parent+","+this.left+","+this.right+")";
		}
}

第二个文件HuffmanTree

public class HuffmanTree {
	private int leafNum;
	private TriElement[] huftree;
	public HuffmanTree(int[] weight){
		int n=weight.length;
		this.leafNum=n;
		this.huftree=new TriElement[2*n-1];
		for(int i=0;i

第三个文件HuffmanTree_example

import java.util.Scanner;

import text5.SeqList;

public class HuffmanTree_example {
     public static void main(String args[]){
    	 SeqList list=new SeqList();
    	 System.out.println("请依次输入权值并以0结束作为标识");
    	 Scanner scan=new Scanner(System.in);
    	 while(true){
    		 int x=scan.nextInt();
    		 if(x!=0)
    			 list.append(x);
    		 else
    			 break;
    	 }
    	 int[] weight=new int[list.length()];
    	 for(int i=0;i

第四个文件SeqList

package text5;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class SeqList implements List {  
    
    private Object[] element;//声明一个对象数组  
    private int len;//声明一个顺序表长度,记载实际元素个数  
      
    public SeqList(int size)//构造函数,创建一个空表  
    {  
        this.element=new Object[size];  
        this.len=0;  
    }  
      
    public SeqList()//默认构造函数  
    {  
        this(64);  
    }  
      
    public boolean isEmpty() {  
        // TODO 自动生成的方法存根  
        return this.len==0;  
    }  
  
    public int length() {  
        // TODO 自动生成的方法存根  
        return len;  
    }  
  
    public T get(int i) {  
        // TODO 自动生成的方法存根  
        if(i>=0&&i=0&&i0)  
            str+=element[0].toString();  
        for(int i=1;ilen)  
            i=len;  
        for(int j=len-1;j>=i;j--)  
            element[j+1]=element[j];  
        element[i]=x;  
        len++;  
              
    }  
  
    public void append(T x) {  
        // TODO 自动生成的方法存根  
        insert(len,x);  
    }  
  
    public T remove(int i) {  
        // TODO 自动生成的方法存根  
        if(i<0||i>len-1||len==0)  
            return null;  
        T old = (T)element[i];  
        for(int j=i;j iterator() {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public Object[] toArray() {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public  T[] toArray(T[] a) {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public boolean add(T e) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public boolean remove(Object o) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public boolean containsAll(Collection c) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public boolean addAll(Collection c) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public boolean addAll(int index, Collection c) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public boolean removeAll(Collection c) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public boolean retainAll(Collection c) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public void clear() {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public T set(int index, T element) {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public void add(int index, T element) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public int indexOf(Object o) {
		// TODO 自动生成的方法存根
		return 0;
	}

	@Override
	public int lastIndexOf(Object o) {
		// TODO 自动生成的方法存根
		return 0;
	}

	@Override
	public ListIterator listIterator() {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public ListIterator listIterator(int index) {
		// TODO 自动生成的方法存根
		return null;
	}

	@Override
	public List subList(int fromIndex, int toIndex) {
		// TODO 自动生成的方法存根
		return null;
	}  
  
}  
把这四个文件放在一个包里,就可以运行了 编写一个程序,利用哈夫曼树求取哈夫曼编码。构造一棵哈夫曼树并进行哈夫曼编码。实验步骤: ①、在编辑环境中新建程序,输入程序内_第1张图片

你可能感兴趣的:(编写一个程序,利用哈夫曼树求取哈夫曼编码。构造一棵哈夫曼树并进行哈夫曼编码。实验步骤: ①、在编辑环境中新建程序,输入程序内)