00001 00002 #ifndef comp_h 00003 #define comp_h 00004 #include <fstream> 00005 #include "header.h" 00006 #include"IOs.h" 00007 #include "heap.h" 00008 00009 using namespace std; 00010 00012 00018 class compressore 00019 { 00020 public: 00022 00037 compressore(const char file[], const char fileo[]); 00038 00039 protected: 00040 00042 00043 int num; 00044 00046 00050 fstream stream; 00051 00053 00057 int* v; 00058 00060 00065 frequenza** pf; 00066 00068 00071 node* root; 00072 00074 00079 char** c; 00080 00082 00087 void contaoccorrenze(); 00088 00090 00099 int arrayfreq(); 00100 00102 00112 node* huffman (heap h, int last); 00113 00115 00124 void linearizza (node* tree, char* codice, int j = 0); 00125 00127 00140 void comprimi(const char file[], IOs& out); 00141 00143 00151 void cancella (node*&tree); 00152 00154 00162 int traduci (char c); 00163 00165 00172 int elevato (int a, int b); 00173 }; 00174 00175 #endif