北京邮电大学信息与通信工程学院
2.2 关键算法分析
代码描述:
1.构造函数
template < class T >
void BiTree<T>::Creat(BiNode<T>*&R, T data[], int i,int n)//i 表示位置,从 1 开始,n 表示
数组长度
{
if (i <= n&&data[i - 1])
{
R = new BiNode < T > ;//创建根节点
R->data = data[i - 1];
Creat(R->LChild, data, 2 * i, n);//创建左子树
Creat(R->RChild, data, 2 * i + 1, n);//创建右子树
}
else R = NULL;
}
template<class T>
BiTree<T>::BiTree(T data[], int n)
{
Creat(Root, data, 1, n);//利用递归循环构造
}
2.前序遍历
//前序遍历,递归
template<class T>
void BiTree<T>::PreOrder(BiNode<T>*R)//前序遍历,递归//R 都是源自于一开始构造所产生的
根节点//根->左->右
{
if (R != NULL)
{
cout << R->data<<" ";//访问结点
PreOrder(R->LChild);//遍历左子树
第 2 页