大数医达面试题

测试题

1、用任意一种编程语言定义一个class或struct来表示二叉树。

备注:可以不写构造函数和对象初始化的代码,仅定义出class或struct的成员变量即可。其中节点的值用int或char类型即可。

 2、写一个函数实现二叉树的先序遍历,输入参数是刚才定义的这个二叉树。

备注: 函数不需要有返回值,只要能print出来节点的值即可。

3、写一个函数实现二叉树的广度优先遍历。

备注:如需用到复杂数据结构,如队列、栈、hashmap等,可假设标准库已存在,可直接使用不需要单独实现。

 

 

背景知识:

1.什么是二叉树?

二叉树是每个结点最多有两个子树的树结构。

通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。

2.什么是二叉树的先序遍历?

先序遍历也叫做先根遍历、前序遍历,可记做根左右(二叉树父结点向下先左后右)。

首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树,如果二叉树为空则返回。

例如,下图所示二叉树的遍历结果是:ABDECF

3.什么是二叉树的广度优先遍历?

广度优先遍历对于二叉树来说可以认为是按层遍历,其中根节点为第1层,根节点的子节点为第2层,以此类推。广度优先遍历的顺序就是从第1层到最后一层的顺序遍历,每一层内部从左到右遍历。

例如对于上图的广度优先遍历顺序为 A B C D E F

原文地址:https://www.cnblogs.com/wqbin/p/11190908.html