【问题描述】
以二叉链表为存储结构,编写算法求二叉树的宽度(具有结点数最多的那一层上的节点个数)。
【输入形式】两行,第一行是扩展二叉树的前序遍历序列。
【输出形式】二叉树的宽度。
【样例输入】AB#D##C##
【样例输出】
2
分析:
1.建立二叉树 结点
2.输入结点
3.遍历树 寻找最大宽度
4.打印输出
建立二叉树 结点
template <typename DataType>
struct BiNode
{
DataType data;
BiNode<DataType>*lchild,*rchild;
};
template<typename DataType>
class BiTree
{
public:
BiTree()
{
root=Create();
}
int Width();//不用递归调用的函数 不用再在private里写一个同名函数了
private:
BiNode<DataType>*Create(