假如我的输入序列为:
2 13 14 5 6 17 8 9 2 3
则我创建的二叉树形如:
2
13 14
5 6 17 8
9 2 3
用二叉表的链接存储结构创建
#include
#include
using namespace std;
struct BinTree
{
int data;
BinTree *Left,*Right;
};
void del(BinTree *p)
{
if(p->Left)
del(p->Left);
if(p->Right)
del(p->Right);
delete p;
}
BinTree *Creat(int *node, int &size, int pos)
{
if(pos>=size)
return NULL;
BinTree *t = new BinTree;
t->data=node[pos];
t->Left=Creat(node, size, pos*2+1);
t->Right=Creat(node, size, pos*2+2);
return t;
}
void DFS( BinTree*p)
{
if(!p)
return ;
cout<data<<" ";
DFS(p->Left);
DFS(p->Right);
}
int main(int argc, char *argv[])
{
BinTree *tree;
int node[]={/
1,2,3,4,5,6,7,8,9,10,11,12,/
13,45,15,16,17,18,19,20,21,/
22,23,24,25,26,27,28,29,30,31
};
int size = sizeof(node) / sizeof(node[0]);
tree=Creat(node, size, 0);
DFS(tree);
del(tree);
system("PAUSE");
return 0;
}
创建二叉树
最新推荐文章于 2018-08-15 18:36:08 发布