【发布时间】:2014-11-23 14:36:38
【问题描述】:
我想计算平均值。树有4个信息:数据,数字,左和右。所有节点的平均值 = 乘以数据和数量 / 总数。
struct node{
int number;
int data;
struct node *right;
struct node *left;
}
typedef struct node nod;
typedef struct node* nodePtr;
typedef struct node** nodePtrPtr;
int main(){
nodePtr a=NULL;
calAverage(&a);
}
void calAverage(nodePtrPtr tree){
{
nodePtr g;
double average, sum=0,num,n,s=0;
int k,z=0;
int l,w=0;
if(tree){
tree=g;
g->total_number_of_reviews=k;
g->scoreNumber=num;
sum+=(num*k );
z+=k;
}
if(tree->left){
calAverage(tree->left);
}
if(tree->right){
calAverage(tree->right);
}
average=((sum+s)/(z+w));
printf("%.1lf average ",average);}
此代码无法正常工作。你认为我通过递归调用平均方法吗?
【问题讨论】:
-
1)
struct node right; struct node left;的成员 -->*right,*left -
2)
nodePtr a;calAverage(&a);:a未初始化。它没有赋值。 -
其实我写了这些,但没有添加这个页面。但我的问题是关于 calAverage 方法 --> 是真的吗? @BLUEPIXY
-
我似乎按照路径不正确。递归处理很容易理解。
-
您对正确的路径有什么建议吗? @BLUEPIXY
标签: c binary-search-tree average