所以,我做了一点阅读并咨询了朋友的帮助。我想我明白了吗?实际上,我在项目中的部分只是将字符和频率表存储到一个链表中。我已经写下了一些代码,如果有人可以改进它,是否有可能。
示例输入 .txt 文件(字符和频率表):
B1
D3
E7
J9
结构:
struct node {
char info;
int freq;
struct node * next;
struct node * left, *right, *father;
};
typedef struct node * nodeptr;
nodeptr getnode(){
return malloc(sizeof(struct node));
}
主程序(直到将表存储到链表中的部分):
string input;
nodeptr list = NULL;
FILE *fopen();
int c;
list = fopen("Huffman Table.txt","r");
c = getc(input) ;
while (c!= EOF)
{
putchar(c);
c = getc(input);
}
getch();
fclose(input);
for (node * row = table; row != NULL; row = row->next){
fprintf(file, "%s %i %i", row->info, row->freq);
}
不过,我不确定这部分:
for (node * row = table; row != NULL; row = row->next)
我应该改用这个吗?
for(i=0;i<strlen(input);i++){