import java.io.*; public class LZWCompression { String input="",prefix="",word; char arr[],ch; int d_index=0,i,codeword,match; String dict[]; public int in_dictionary(String str) { int i; for(i=1;i<=d_index;i++) if(str.equals(dict[i])) { return i; } return -999; } public LZWCompression() { try { System.out.print("Enter any String :"); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); input=br.readLine(); arr=input.toCharArray(); dict=new String[input.length()]; System.out.println("Encoded Output :"); i=0; while(i<input.length()) { ch=arr[i]; word=prefix+ch; if(in_dictionary(word)!=-999) { prefix=word; } else { if(prefix.equals("")) codeword=0; else codeword=in_dictionary(prefix); System.out.print(codeword); System.out.println(" :"+ch); dict[++d_index]=word; prefix=""; } i++; } if(!prefix.equals("")) { codeword=in_dictionary(prefix); System.out.print(codeword); System.out.println(" :"+" "); } System.out.println("Dictionary Contents :"); for(i=1;i<=d_index;i++) { System.out.print(i + ":"); System.out.println(dict[i]); } } catch(Exception ex) { ex.printStackTrace(); } } public static void main(String args[]) { new LZWCompression(); } }
Lempel-Ziv-Welch compression algorithm program in Java
Subscribe to:
Posts (Atom)
No comments:
Post a Comment