Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何将表存储到链表中?_C_List_Linked List_Huffman Code - Fatal编程技术网

C 如何将表存储到链表中?

C 如何将表存储到链表中?,c,list,linked-list,huffman-code,C,List,Linked List,Huffman Code,所以,我读了一些书,并向一位朋友寻求帮助。我想我明白了?实际上,我在项目中的部分只是将字符和频率表存储到一个链接列表中。我已经写下了一些代码,所以如果有人能改进它,是否有可能 示例输入.txt文件(字符和频率表): B1 D3 E7 J9 结构: struct node { char info; int freq; struct node * next; struct node * left, *right, *father; }; typedef struct node

所以,我读了一些书,并向一位朋友寻求帮助。我想我明白了?实际上,我在项目中的部分只是将字符和频率表存储到一个链接列表中。我已经写下了一些代码,所以如果有人能改进它,是否有可能

示例输入.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));
}
主程序(直到将表存储到链表中为止):

但我不确定这部分:

for (node * row = table; row != NULL; row = row->next)
我应该用这个来代替吗

for(i=0;i<strlen(input);i++){
for(i=0;i我不认为

for(node*row=table;row!=NULL;row=row->next)
因为你要在第一个分号之前传递一个赋值

你在做的是…我真的不知道

for(i=0;iused for循环(语法上)完全可以,这并不少见。但是,“table”指针是什么?它是列表的根吗?小注释-如果您创建了“nodeptr”typedef,您应该在那里使用它。这就是它的用途。您的代码还有一些其他部分我很关心

  • 你说过它应该是一个链表,那么为什么你的结构有“父”指针呢?在我看来它更像一棵树。如果不是故意的,请删除该字段

  • 我不确定我是否理解了您编写的最后一段代码。如果您想将列表的内容写入文件,应该使用上面提到的for循环


  • 作为对这段代码的总体改进(对我来说,这看起来像是一个家庭作业,我想应该这样标记)但是,如果你允许C++中的代码,而不是C.< /P>,你的代码实际上不会存储任何列表上的字符。尝试改进自己的代码读取,并在任何列表节点中存储一些东西,创建它并将其链接到List.Oh,因为它将被用作树。稍后…我的部分项目只是将.txt表实现到一个链表中。那么这是否意味着我以后必须为表和树创建另一个结构?好吧,你可以暂时不使用它,但这有点误导。不过,这并不是这里的主要问题。。。
    for(i=0;i<strlen(input);i++){