本文主要是介绍求二叉树中结点最大值和结点最小值之差,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//求二叉树中结点最大值和结点最小值之差#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));
}
//前序输入数据
这篇关于求二叉树中结点最大值和结点最小值之差的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!