keytab,int n) { int cond; struct key *low=keytab; struct key *high=low+n; struct key *mid; while(low<high) { mid=low+(high-low)/2; if(cond=strcmp(word,mid->word)>0) low=mid; else if(cond<0) high=mid; else { return mid; } } return NULL; }
6.5 自引用结构
还是用上面单词统计的例子,想统计每个出现的单词及出现的次数。
这里我们用一个树的结构来解决这个问题
定义一个树结点的结构
struct TreeNode { char *word; int count; struct TreeNode *lNode; struct TreeNode *rNode; };