树结点定义(这课树的数据域是字符类型,如果需要可以把类型更改为对应的Elemtype):
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
创建一个树:
BiTree Create(BiTree &T){
//创建一棵二叉树
char ch;
scanf("%c",&ch);
fflush(stdin);
if(ch=='*'){
T=NULL;
}
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode)))) exit(0);
T->data=ch;
Create(T->lchild);
Create(T->rchild);
}
return T;
}
计算WPL:
int Wpl(BiTree bt,int deep){
if(bt==NULL) return 0;
if(bt->lchild==NULL&&bt->rchild==NULL)
return (bt->data-96)*deep;
int wl=Wpl(bt->lchild,deep+1);
int wr=Wpl(bt->rchild,deep+1);
return wl+wr;
}