00001 // A copy of bintree.c for huffman coding tests 00002 00003 #include <j2k/Fred/Basic.hpp> 00004 00005 // Set this for BST tests 00006 // typedef int Belem; 00007 00008 // Set to this for Huffman tree tests 00009 00010 #include <j2k/DataType/LettFreq.hpp> 00011 00012 typedef LettFreq* Belem; 00013 00014 #include <j2k/DataType/BinTree.hpp> 00015 #include <j2k/DataType/HuffTree.hpp> 00016 00017 // This creates space for the freelist variable 00018 BinNode* BinNode::freelist = NULL; 00019 00020 void* BinNode::operator new(size_t) 00021 { 00022 if (freelist == NULL) 00023 { 00024 return ( ::new BinNode ); 00025 } 00026 00027 BinNode* temp = freelist; 00028 freelist = freelist->left; 00029 return temp; 00030 } 00031 00032 void BinNode::operator delete(void* ptr) 00033 { 00034 ((BinNode*)ptr)->left = freelist; 00035 freelist = (BinNode*)ptr; 00036 }