diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.am | 5 | ||||
| -rw-r--r-- | src/main.cc | 54 | ||||
| -rw-r--r-- | src/test.cc | 3 | 
3 files changed, 59 insertions, 3 deletions
| diff --git a/src/Makefile.am b/src/Makefile.am index 03bcc4f..173e832 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,12 +1,15 @@  localedir = $(datadir)/locale  DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@  AM_CFLAGS = -O3 -Wall -Wstrict-prototypes $(CFLAGS) +AM_CXXFLAGS = -O3 -Wall -Wstrict-prototypes $(CXXFLAGS)  INCLUDES = -I. -I.. -I$(includedir) -I../include -bin_PROGRAMS = testTas +bin_PROGRAMS = testTas Huffman  testTas_SOURCES = test.cc +Huffman_SOURCES = main.cc  LDADD = ../lib/libPriorityLists.la  testTas_LDADD = $(LDADD) +Huffman_LDADD = $(LDADD) diff --git a/src/main.cc b/src/main.cc new file mode 100644 index 0000000..520f6ec --- /dev/null +++ b/src/main.cc @@ -0,0 +1,54 @@ +#include <stdio.h> +#include <stdlib.h> +#include "config.h" +#include "BHeap.h" +#include "FHeap.h" +#include "BinHeap.h" +#include "PLList.h" +#include "Huffman.h" + +void exception(int e, char *msg) +{ +	fprintf(stderr, "%s\n", msg); +	exit(-1); +} + +PriorityList *newlist(void) +{ +	return new BinHeap; +} + +void Count(FILE * strm, PriorityList * P) +{ +	int tab[256], i; +	char *t; + +	for (i = 0; i < 256; i++) { +		tab[i] = 0; +	} + +	while ((i = getc(strm)) != EOF) { +		tab[i]++; +	} + +	for (i = 0; i < 256; i++) { +		if (tab[i]) { +			t = (char *) malloc(2); +			t[0] = i; +			t[1] = 0; +			HInsert(P, tab[i], t); +		} +	} +} + +int main(int argc, char **argv) +{ +	PriorityList *P = newlist(); +	HTree *H; + +	Count(stdin, P); + +	H = Coder(P); +	H->Trace(cout); +	return 0; +} diff --git a/src/test.cc b/src/test.cc index 5a1bce5..bc53810 100644 --- a/src/test.cc +++ b/src/test.cc @@ -20,7 +20,7 @@ void exception(int e, char *msg)  PriorityList *newlist(void)  { -	return new BinHeap; +	return new FHeap;  }  void DoCombTest(int number) @@ -59,7 +59,6 @@ void FullTest(void)  {  	PriorityList *T;  	Datas_t Datas; -	char msg[10240];  	Cell C1, C2;  	Key_t K;  	int i; | 
