Huffman coding: Difference between revisions
Content added Content deleted
(wrote code using example described) |
|||
Line 2,951: | Line 2,951: | ||
int freq; |
int freq; |
||
} |
} |
||
-( |
-(instancetype)initWithFreq:(int)f; |
||
@property (nonatomic, readonly) int freq; |
@property (nonatomic, readonly) int freq; |
||
@end |
@end |
||
Line 2,957: | Line 2,957: | ||
@implementation HuffmanTree |
@implementation HuffmanTree |
||
@synthesize freq; // the frequency of this tree |
@synthesize freq; // the frequency of this tree |
||
-( |
-(instancetype)initWithFreq:(int)f { |
||
if (self = [super init]) { |
if (self = [super init]) { |
||
freq = f; |
freq = f; |
||
Line 2,988: | Line 2,988: | ||
} |
} |
||
@property (readonly) char value; |
@property (readonly) char value; |
||
-( |
-(instancetype)initWithFreq:(int)f character:(char)c; |
||
@end |
@end |
||
@implementation HuffmanLeaf |
@implementation HuffmanLeaf |
||
@synthesize value; |
@synthesize value; |
||
-( |
-(instancetype)initWithFreq:(int)f character:(char)c { |
||
if (self = [super initWithFreq:f]) { |
if (self = [super initWithFreq:f]) { |
||
value = c; |
value = c; |
||
Line 3,006: | Line 3,006: | ||
} |
} |
||
@property (readonly) HuffmanTree *left, *right; |
@property (readonly) HuffmanTree *left, *right; |
||
-( |
-(instancetype)initWithLeft:(HuffmanTree *)l right:(HuffmanTree *)r; |
||
@end |
@end |
||
@implementation HuffmanNode |
@implementation HuffmanNode |
||
@synthesize left, right; |
@synthesize left, right; |
||
-( |
-(instancetype)initWithLeft:(HuffmanTree *)l right:(HuffmanTree *)r { |
||
if (self = [super initWithFreq:l.freq+r.freq]) { |
if (self = [super initWithFreq:l.freq+r.freq]) { |
||
left = l; |
left = l; |