我目前正在大学学习C语,但由于某些原因,这对我来说太难了。我无法找到一个简单的一步一步的指南,互联网上的所有内容都是如此复杂,没有太多解释。 我应该写这个程序:
'使用二进制树和列表编写一个读取文本文件的程序,并按字母顺序将所有单词以及出现该单词的行号打印到输出文件中。'
我只是不知道如何开始它。我可以打开文件,从命令行运行它,但我不知道如何创建二叉树,从文件中获取单词并将它们放在那里,然后在二叉树中创建一个列表。我发现的所有例子都是如此不同,以至于我不知道如何重写它们以便它们适合我。 有人可以帮忙吗?即使只是几行代码可以指导我正确的方向也会有所帮助!
答案 0 :(得分:0)
对于初学者来说,它是 binary-search tree ,(特殊类型的二叉树),这是给定问题所必需的。
binary search tree
是一个二叉树,其中填充了可比较的对象,例如数字。给出两个数字x
和y
的含义,可以毫不含糊地回答以下三个boolean conditions
。
x greater than y
x less than y
x equal to y
现在binary search tree
建立在上述布尔条件的基础上。这里的类比是单词可比较,它决定典型的牛津字典中的顺序。与apple < box
类似,apple
按字母顺序排在box
之前。
如何按字母顺序排列?
填充完树后,一个简单的 inorder traversal 将完成剩下的工作,即按字母顺序列出单词。只记得还有行号的变量,它可以在构建树的同时存储,以后可以在按顺序打印单词时检索。
将代码作为练习。