#include<stdio.h> #include<ctype.h> #include<string.h> #define MAXWORD 100 struct tnode *addtree(struct tnode *, char *) ; void treeprint(struct tnode *) ; int getword(char * , int ) ; int main(){ struct tnode *root ; char word[MAXWORD] ; root = NULL ; while(getword(word, MAXWORD) != EOF) { if(isalpha(word[0])) { root = addtree(root , word) ; } } treeprint(root) ; return 0 ; }
时间: 2024-04-19 20:25:19 浏览: 83
C标准库函数集
5星 · 资源好评率100%
这段代码是一个简单的单词计数程序,它会读取输入并统计每个单词出现的次数。它使用了一个二叉树来存储单词及其出现次数。
代码中的`struct tnode`定义了二叉树节点的结构,包含一个指向左子树和右子树的指针,以及一个表示单词的字符串和一个计数器。
`addtree`函数用于向二叉树中添加单词。它接收一个指向根节点的指针和一个单词作为参数,并将单词添加到树中。如果单词已经存在,则增加计数器;如果单词不存在,则创建一个新的节点并插入到适当的位置。
`treeprint`函数用于按字典顺序打印出二叉树中的所有单词及其出现次数。它采用递归的方式遍历二叉树,并按照中序遍历的顺序打印节点。
`getword`函数用于从输入中读取一个单词,并将其存储在提供的字符数组中。它会跳过空白字符,并将单词作为一个字符串返回。
在`main`函数中,程序首先创建一个空的二叉树作为根节点。然后,它循环读取输入并调用`addtree`函数将单词添加到树中。最后,调用`treeprint`函数打印出树中的所有单词及其出现次数。
这段代码可以用来统计文本中不同单词的出现次数,并按照字典顺序打印出来。
阅读全文