假如我的输入序列为:
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;
}
创建二叉树
最新推荐文章于 2024-09-16 14:31:09 发布
博客围绕二叉树展开,给出输入序列创建二叉树,采用二叉表的链接存储结构。提供了创建、深度优先遍历和删除二叉树的代码实现,包含结构体定义及相关函数,最后在主函数中调用这些操作。
6753

被折叠的 条评论
为什么被折叠?



