作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想做的是霍夫曼算法。该程序的规范之一是用户将创建一个 .txt 文件,其中包含字符及其相应的频率。所以它就像一个字符列表,每个字符旁边是该字符的权重。下面是 that.txt 文件的示例:
H5
J4
K6
S9
L2
N1
我所做的是读取并显示 .txt 文件。我很难将它实现到链表中。我尝试阅读 fread() fwrite() 和所有其他函数,但我真的无法理解它的要点。非常感谢任何形式的帮助。 :D
最佳答案
尽管您需要一棵树,但我假设您使用 struct
进行存储,例如
struct list {
char *symbol;
int prob;
struct list *next;
};
因此,如果您已成功读取文件,那么您将获得字符串“H5”、“J4”等。您所要做的就是使用 strtok 分割字符串。或类似的功能。现在您可以将符号复制到 *symbol
并使用 atoi 转换概率。到一个int
,然后将其写入prob
。
编辑:忘记提及,您应该考虑文件的结构,因为另一方面,“H5”可能不能很好地用 strtok
进行解析也许你根本不需要 strtok
,如果第一个字符始终是符号,之后只是计数。
编辑 #2:同时给出 fscanf尝试一下(如果您知道格式的话,比 strtok
容易得多)。
关于c - 如何将文本文件实现为链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10185664/
我是一名优秀的程序员,十分优秀!