Обновить sk1/compressor.c
This commit is contained in:
parent
7830f11bdf
commit
94646354cf
@ -102,7 +102,21 @@ struct MinHeap* createAndBuildMinHeap(unsigned char data[], int freq[], int size
|
|||||||
buildMinHeap(minHeap);
|
buildMinHeap(minHeap);
|
||||||
return minHeap;
|
return minHeap;
|
||||||
}
|
}
|
||||||
|
void freeMinHeap(struct MinHeap* minHeap) {
|
||||||
|
for (int i = 0; i < minHeap->size; ++i) {
|
||||||
|
free(minHeap->array[i]);
|
||||||
|
}
|
||||||
|
free(minHeap->array);
|
||||||
|
free(minHeap);
|
||||||
|
}
|
||||||
|
|
||||||
|
void freeHuffmanCodes(char* codes[256]) {
|
||||||
|
for (int i = 0; i < 256; ++i) {
|
||||||
|
if (codes[i]) {
|
||||||
|
free(codes[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// Build Huffman Tree
|
// Build Huffman Tree
|
||||||
struct MinHeapNode* buildHuffmanTree(unsigned char data[], int freq[], int size) {
|
struct MinHeapNode* buildHuffmanTree(unsigned char data[], int freq[], int size) {
|
||||||
struct MinHeapNode *left, *right, *top;
|
struct MinHeapNode *left, *right, *top;
|
||||||
@ -213,6 +227,8 @@ int compressFile(const char* input_file_name, const char* output_file_name) {
|
|||||||
for (int i = 0; i < 256; i++) {
|
for (int i = 0; i < 256; i++) {
|
||||||
if (codes[i]) free(codes[i]);
|
if (codes[i]) free(codes[i]);
|
||||||
}
|
}
|
||||||
|
freeHuffmanCodes(codes); // Освободите память для кодов
|
||||||
|
freeMinHeap(minHeap); // Освободите память для кучи
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user