winzip icon

file compression

Email
Submitted on: 1/1/2015 5:15:00 PM
By: vsim (from psc cd)  
Level: Intermediate
User Rating: By 3 Users
Compatibility: C
Views: 759
 
     File compression is useful when transmitting very large files.Ascii text files encode each chracter by an 8 bit fixed lenght code.Such files can often be significantly compressed if instead of this fixed lenght code one uses a variable lenght code where the more frequently occuring characters have short codes and the less frequently occuring characters have longer codes.For example ,a large data file might have mostly digit,space and new-line characters in it.If short(less than 8 bit) codes are used for these then the file would be significantly compressed.A Lisp file might have many left and right parentheses in it.Using short codes for these would compress the file.I used Huffman codes to compress the file .I worked real hard on it and it is long program Please declare me the winner of this new year.
 

INCLUDE files:

Can't Copy and Paste this?
Click here for a copy-and-paste friendly version of this code!
//**************************************
//INCLUDE files for :file compression
//**************************************
//minheap.h//
#ifndef _minheap_h
#define _minheap_h
#include "hufftree.h"
#define MAX_ARRAY 128
typedef struct MinHeapInfo *MinHeap;
struct MinHeapInfo
{
int ArraySize, Size;
HuffTree *heap_array;
};
MinHeap NewMinHeap(void);
HuffTree DeleteMinHeap(MinHeap);
void InsertMinHeap(MinHeap, HuffTree);
int SizeMinHeap(MinHeap);
#endif
//hufftree.h//
#ifndef _hufftree_h
#define _hufftree_h
#define MAX_ARRAY128
typedef struct HuffNode *HuffTree;
struct HuffNode
{
char character;
int frequency;
HuffTree left, right;
};
HuffTree NewHuffTree(char, int);
HuffTree JoinHuffTrees(HuffTree, HuffTree);
void OutputHuffCodes(HuffTree);
#endif 
 
//error.h//
 #ifndef _error_h
#define _error_h
void FatalError(char msg[ ]);
void Error(char msg[ ]);
#endif
winzip iconDownload code

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it.Virus note:All files are scanned once-a-day by Planet Source Code for viruses, but new viruses come out every day, so no prevention program can catch 100% of them. For your own safety, please:
  1. Re-scan downloaded files using your personal virus checker before using it.
  2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.

If you don't have a virus scanner, you can get one at many places on the net including:McAfee.com


Other 4 submission(s) by this author

 


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Intermediate category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)
 

Other User Comments


 There are no comments on this submission.
 

Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)
 

To post feedback, first please login.