层序:每层从左向右读
前序:根左右
中序:左根右
后序:左右根
struct tree
{
int data;
tree *lson,*rson;
};
tree *buildtree(tree *bt)
{
int x;
cin >> x;
if (x == 0)
{
bt = NULL;
}
else
{
bt = new tree;
bt->data = x;
bt->lson = buildtree (bt->lson);
bt->rson = buildtree (bt->rson);
}
return bt;
}
void show (tree *bt) //前序输出
{
if (bt == NULL)
{
return;
}
else
{
cout << bt->data << "-"; //输出根
show (bt->lson);
show (bt->rson);
}
}
void show (tree *bt) //中序输出
{
if (bt == NULL)
{
return;
}
else
{
show (bt->lson);
cout << bt->data << " "; //输出根
show (bt->rson);
}
}
void show (tree *bt) //后序输出
{
if (bt == NULL)
{
return;
}
else
{
show (bt->lson);
show (bt->rson);
cout << bt->data << " "; //输出根
}
}
void show (tree *bt) //层序输出
{
tree *temp;
if (bt == NULL)
{
return;
}
queue<tree*>Q;
Q.push (bt);
while (!Q.empty ())
{
temp = Q.front();
Q.pop();
cout << temp->data << " ";
if (temp->lson != NULL)
{
Q.push (temp->lson);
}
if (temp->rson != NULL)
{
Q.push (temp->rson);
}
}
}
int main()
{
tree *root;
root = new tree;
root = buildtree(root);
show(root);
}
二叉树笔记建树代码
最新推荐文章于 2024-04-09 17:52:32 发布