求二叉树中结点最大值和结点最小值之差

来源:互联网 发布:贝克汉姆球衣淘宝 编辑:程序博客网 时间:2024/04/29 01:20
//求二叉树中结点最大值和结点最小值之差#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <math.h>int Max,Min;typedef struct BiTNode{int data;struct BiTNode* lchild,* rchild;}BiTNode,*BiTree;void CreateBiTree(BiTree *T){int data;scanf("%d",&data);if(data==0)*T=NULL;else{*T=(BiTree)malloc(sizeof(BiTNode));if(!*T)exit(1);(*T)->data=data;  //生成根结点CreateBiTree(&(*T)->lchild);//构造左子树CreateBiTree(&(*T)->rchild);//构造右子树}}void Find(BiTree T){if(T==NULL)   return;else{if(T->data>Max)Max=T->data;if(T->data<Min)Min=T->data;Find(T->lchild);Find(T->rchild);}}void main(){BiTree T;CreateBiTree(&T);if(T==NULL){printf("二叉树为空!");exit(1);}else{Max=Min=T->data;}Find(T);printf("最大结点值和最小结点之差绝对值为%d\n",abs(Max-Min));}

//前序输入数据

0 0