#include #include #include #include #include "tree.h" FILE* readFile(const char * filename) { return fopen(filename, "r"); } void closeFile(FILE * fp) { fclose(fp); } void tabFrequence(FILE *fp, int tabFreq[]) { for (int i = 0; i < TAB_FREQ_SIZE; i++) { tabFreq[i] = 0; } char c; while(1) { c = fgetc(fp); if( feof(fp) ) { break ; } //printf("%c", c); //printf("%d\n", c); tabFreq[(int)c]++; } tabFreq[10] = 0;//à virer à la fin } void afficheTabCharFreq(int tabFreq[]) { for (int i = 0; i < TAB_FREQ_SIZE; i++) { if(tabFreq[i] != 0) { printf("Char : %c\t", i); printf("Freq : %d\t", tabFreq[i]); printf("ASCII : %d\n", i); } } } int main(int argc, char **argv) { Node* nodeArray[TAB_FREQ_SIZE]; int nodeArraySize; FILE *fp = readFile("./test"); //system("pwd"); if (fp == NULL) perror("Error"); int tabFreq[TAB_FREQ_SIZE]; tabFrequence(fp, tabFreq); afficheTabCharFreq(tabFreq); initNodes(tabFreq, nodeArray, &nodeArraySize); qsort(nodeArray, nodeArraySize, sizeof(Node*), compNodeByFreq); printNodeArray(nodeArray, nodeArraySize); Node* tree = generateTree(nodeArray, nodeArraySize); affichage_arborescence_version1(tree, 1); printf("\n"); setCharCode(tree); closeFile(fp); return(0); }