开始：

1、解压hw8-9-10文件夹到你的电脑中。在hw8-9-10文件夹中，
    BiTree.h头文件实现基于二叉链表数据结构实现二叉树类，包括二叉树的深度优先和广度优先遍历、遍历的应用。
    Stack.h、SeqStak.h、LinkedStack.h、Queue、SeqQueue.h分别实现了顺序栈、单链栈、顺序循环队列数据结构。
    BiTreeTest.cpp测试BiTree类的构造、输出、遍历、求二叉树的深度、结点个数、判断两个二叉树是否相等、判断二叉树是否是平衡二叉树和撤销二叉树、凹入表形式输出二叉树等。data.txt是测试输入数据文件。

2、建立一个空项目，添加Stack.h、SeqStak.h、LinkedStack.h、Queue.h、SeqQueue.h、BiTree.h头文件和BiTreeTest.cpp。运行测试文件BiTreeTest.cpp。


3、你的任务：

    数据结构 作业8

    目标：本次作业练习用二叉链表实现二叉树。

3.1  任务1  在BiTree.h文件中，编写Insert(BinTreeNode<T> *& curr, const T& x, int d）函数，在二叉树的curr结点左/右插入新子女结点x，原来的子女节点作为新结点的子女结点。d=0，左插入；d不等于0，右插入。插入成功返回新子女结点的地址。


    数据结构 作业9

    目标：本次作业练习二叉树的递归遍历。

3.2  任务2  在BiTree.h文件中，编写Find(BinTreeNode<T> * subtree, const T& x)递归函数，在二叉树subtree中查找x，查找成功，返回结点地址，否则返回0。

3.3  任务3  在BiTree.h文件中，编写IsBalanced()递归函数，判断二叉树是否为平衡二叉树。如果每个结点的左子树和右子树的高度差的绝对值都小于2，则二叉树是平衡的。subTree二叉树如果是平衡的则返回true，否则返回false。


    数据结构 作业10

    目标：本次作业练习二叉树的非递归遍历。

3.4  任务4  在BiTree.h文件中，编写NonR_Height()函数，使用非递归算法实现求二叉树的高度。

