39 Daa2
39 Daa2
Assignment No: 02
Code:
//Huffman Program
#include <bits/stdc++.h>
#include <chrono>
float freq;
char data;
} treenode;
treenode *data;
} node;
treenode *create();
void encode();
int n = 0;
char alphabets[30];
char codes[30][10];
if (p != NULL)
{ word[i] = 0;
alphabets[n] = p->data;
strcpy(codes[n++], word);
word[i] = '0';
preorder(p->left, i + 1, word);
word[i] = '1';
preorder(p->right, i + 1, word);
}}
p = (node *)malloc(sizeof(node));
p->data = t;
p->next = NULL;
if (head == NULL)
return p;
p->next = head;
return p;
q = head;
q = q->next;
p->next = q->next;
q->next = p;
return head;
void encode()
char word[30];
int i, j;
if (j < n)
treenode *create()
int n, i;
char x;
float probability;
head = NULL;
cin >> n;
cin >> x;
p = (treenode *)malloc(sizeof(treenode));
p->data = x;
p->freq = probability;
t1 = head->data;
t2 = head->next->data;
head = head->next->next;
p = (treenode *)malloc(sizeof(treenode));
p->left = t1;
p->right = t2;
p->freq = t1->freq + t2->freq;
return head->data;
char word[90];
int i;
treenode *q;
q = p;
i = 0;
if (word[i] == '0')
q = q->left;
else
q = q->right;
printf("%c", q->data);
q = p;
i++; }
cout << endl;
int main()
int op;
char word[10];
do
switch (op)
case 1:
root = create();
cout << "Time taken to create Huffman Tree: " << duration.count() << "
milliseconds" << endl;
break;
case 2:
encode();
cout << "Time taken to encode a message: " << duration.count() << " milliseconds"
<< endl;
break;
case 3:
decode(root);
cout << "Time taken to decode a message: " << duration.count() << " milliseconds"
<< endl;
break;
break;
} while (!exitFlag);
return 0;
Output: