2014阿里巴巴校招在线笔试题(数据研发工程师岗位)之二叉树
来源:互联网 发布:淘宝上hm折扣代购真假 编辑:程序博客网 时间:2024/05/16 00:34
此题为2014阿里巴巴校招在线笔试题之附加题之一(数据研发工程师岗位)
题目:
写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。
实现思路:
1、定义结构体。
2、创建二叉树。
3、遍历二叉树,找到最大值和最小值。因为要找到相差最大的两个节点间的差值绝对值,因此,只要找到最大值,最小值,然后采用最大值减最小值即为结果。
4、输出结果(即最大值减最小值)。
#include<stdio.h>int max=0;int min=0;//定义结构体typedef struct Node{int data;struct Node * left;struct Node * right;}BinaryTree;//创建二叉权BinaryTree * createBinaryTree(){int in=0;scanf("%d",&in);if(in!='\0'){BinaryTree * bt=(BinaryTree*)malloc(sizeof(struct Node));if(bt!=NULL){bt->data=in;bt->left=createBinaryTree();bt->right=createBinaryTree();}return bt;}elsereturn NULL;}//遍历二叉树,找最大值和最小值void visitor2(BinaryTree * bt){if(bt!=NULL){if(bt->data>max)max=bt->data;if(bt->data<min)min=bt->data;visitor2(bt->left);visitor2(bt->right);}}int main(){BinaryTree* bt;if(bt!=NULL)bt=createBinaryTree();max=min=bt->data;visitor2(bt);printf("%d\n",max-min);return 0;}
0 0
- 2014阿里巴巴校招在线笔试题(数据研发工程师岗位)之二叉树
- 阿里巴巴2015秋季校招(客户端开发工程师岗位)在线笔试题
- 阿里巴巴 2014校招 研发工程师 笔试
- 2015年阿里巴巴校招研发工程师在线笔试题汇总
- 2014 阿里校招研发岗位在线笔试题+附加题
- 2015届阿里巴巴校招研发在线笔试题
- 阿里巴巴2015校招研发在线笔试题
- 阿里巴巴2016校招在线笔试附加题(C++研发)
- 阿里巴巴校招2015——研发在线笔试 20140829
- 阿里巴巴2014 3.29 研发工程师笔试题
- 阿里巴巴2015研发工程师在线笔试附加题
- 阿里巴巴2015秋季校园招聘研发工程师在线笔试题
- 阿里巴巴2015研发工程师在线笔试附加题
- 针对外部存储器(如磁盘)上存放的程序和数据,说法正确的是()。----阿里巴巴2015校招研发在线笔试题
- 2016届 阿里巴巴校招研发工程师C/C++笔试题--2015.08.23
- 百度校招研发工程师笔试题
- 2014 阿里巴巴 校招 测试开发工程师 笔试题
- 下列不属于hash碰撞解决方法的是()。----阿里巴巴2015校招研发在线笔试题
- 题目:实现atof/atoi,考虑正负号
- C语言:内存字节对齐详解
- [LeetCode]Majority Element
- 第七周
- 读书笔记_Effective_C++_条款三十一:将文件间的编译依存关系降至最低
- 2014阿里巴巴校招在线笔试题(数据研发工程师岗位)之二叉树
- HttpClient入门
- 数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数。java实现
- C++中的智能指针问题
- 快速排序算法
- 《初学JAVA》
- 利用栈求逻辑运算表达式的真值
- scrapy
- Uva10054 无向图打印任意欧拉回路