算法思想:利用层次遍历记录深度deep,如遇到叶子结点则用叶子结点值×deep
int WPl(BiTree t){
if(t==NULL) return NULL;
BiTree Q[MaxSize];
int rear=0,front=0,deep=0,r=0,wpl=0;
Q[rear++]=t;
while (rear!=front){
BiTree tree=Q[front++];
if(tree->lchild==NULL && tree->rchild==NULL){
wpl=wpl+(tree->data)*deep;
}
else{
if(tree->lchild!=NULL){
Q[rear++]=tree->lchild;
}
if(tree->rchild!=NULL){
Q[rear++]=tree->rchild;
}
}
if (front-1==r){
deep++;
r=rear-1;
}
}
return wpl;
}