中序输出二叉树中各结点的值及其所对应的层次数。 (c++)

论坛 期权论坛 期权     
leomork   2018-4-26 14:01   5591   2
请大神们帮帮我 写下函数
分享到 :
0 人收藏

2 个回复

倒序浏览
2#
a584068626  1级新秀 | 2018-4-30 01:55:00 发帖IP地址来自
typedef struct tree
{
int data;
struct tree *lchild,*rchild;
}btree; //二叉树结构
void pri(btree *bt)
{
printf("%d ",bt->data);
}
void inorder(btree *bt)//中序遍历输出
{
if(bt!=NULL)
{
  inorder(bt->lchild);
  pri(bt);
  inorder(bt->rchild);
}
}
//****************************************************
//求以t为根的树的深度,递归算法
//****************************************************
int Get_Depth(btree *t)
{
int m,n;
if(!t)
  return 0;
else
{
  m=Get_Depth(t->lchild);
  n=Get_Depth(t->rchild);
  return (m>n?m:n)+1;
}
}
//****************************************************
//求二叉树中以值为x的结点为根的子树深度
//****************************************************
void Get_Sub_Depth(btree *t,int x)
{
if(t->data==x)
  printf("以结点%d为根节点的子树深度为%d\n",x,Get_Depth(t));
else
{
  if(t->lchild)
   Get_Sub_Depth(t->lchild,x);
  if(t->rchild)
   Get_Sub_Depth(t->rchild,x);
}
}
3#
落葉繁華盡  3级会员 | 2018-4-30 01:55:01 发帖IP地址来自
你采用一次中序遍历就可以了,只要修改遍历函数,visit()函数中输出其层次以及各个节点的数据域内容。中序遍历会吧?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP