数据结构二叉树实验报告.docx精品文档
精品文档
1
精品文档
.
数据结构
实
验
报
告
精品文档
精品文档
17
精品文档
)
{
Release(root);
}
精品文档
精品文档
12
精品文档
intmain()
{
inta[10]={1,2,3,4,5,6,7,8,9,10};
精品文档
精品文档
13
精品文档
'.
精品文档
精品文档
17
精品文档
.
BiTree<int>BTree(a,10);
BiTree<int>Tree(BTree);
();
cout<<endl;
();
cout<<endl;
();
cout<<endl;
();
cout<<endl;
();
cout<<endl;
();
cout<<endl;
();
cout<<endl;
();
cout<<endl;
intm=();
cout<<m<<endl;
return0;
}
:
inta[10]={1,2,3,4,5};
12453
12453
42513
45231
12345
5
:
:这次实验大多用了递归的算法,比较好理解。
:新得体会:
在创建二叉树的过程中,在没有思路的时候可以巧妙的利用递归算法。
但是我的代码仍然应该改进,应该进一步简化,减少算法的时间复杂度和空间
复杂度。
#include<iostream>
usingnamespacestd;
template<classT>classBiNode
精品文档
精品文档
15
精品文档
'.
精品文档
精品文档
17
精品文档
.
{
public:
data;
BiNode<T>*lchild;
BiNode<T>*rchild;
};
template<classT>classBiTree
{
public:
BiNode<T>*root;
BiTree(Tdata[],intn);
BiTree(BiTree<T>&r);
voidPreOrder(BiNode<T>*R);
voidInOrder(BiNode<T>*R);
voidPostOrder(BiNode<T>*R);
voidLevelOrder(BiNode<T>*R);
intCount(BiNode<T>*R);
~BiTree();
private:
voidCreate(BiNode<T>*&R,Tdata[],inti,intn);
voidCopyTree(BiNode<T>*sR,BiNode<T>*&dR);
voidRelease(BiNode<T>*R);
};
template<classT>
voidBiTree<T>::Create(BiNode<T>*&R,Tdata[],inti,intn)
{
if(i<=n&&data[i-1])
{
R=newBiNode<T>;
R->data=data[i-1];
Create(R->lchild,data,2*i,n);
Create(R->rchild,data,2*i+1,n);
}
elseR=NULL;
}
template<classT>
BiTree<T>::BiTree(Tdata[],intn)
{
Create(root,data,1,n);
}
template<classT>
voidBiTree<T>::CopyTree(BiNode<T>*sR,BiNode<T>*&dR)
{
if(sR==NULL)
dR=NULL;
else
{
dR=newBiNode<T>;
精品文档
精品文档
17
精品文档
'.
精品文档
精品文档
18
精品文档
.
dR->data=sR->data;
CopyTree(sR->lchild,dR->lchild);
CopyTree(sR->rchil
数据结构二叉树实验报告 来自淘豆网www.taodocs.com转载请标明出处.