高手帮忙!~

rookie001 2008-11-18 04:45:43
设二叉树的结点的数据场之值仅为一大写英文字母。其前序和中序的遍历结果(打印结点的数据场之值)
分别保存在字符串数组 preorder[N] 及 inorder[N]之中,其中 N 未常数。
请设计程序以标准形式形式存储保存该二叉树。
这道题什么意思,怎么做??
...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rookie001 2008-11-18
  • 打赏
  • 举报
回复
强~~顺便问一句,如何求某个结点的祖先个数比较好~~~~
xxxzzw 2008-11-18
  • 打赏
  • 举报
回复
一道简单的数学题而已
前序NLR
中序LNR
用前序遍历的第一个节点分割中序遍历集为左右两部分,删除前序这个节点(根节点)
前序遍历队列数据量减一,中序遍历队列变成A(左子树)B(右子树)两部分
如果左子树变空,则用前序队列中剩下的元素分割右右子树
如果左子树中只有一个元素,则先输出这个元素,再用前序队列中剩下的元素分割右右子树
重复以上过程直队左右子树分割完毕

devide(int NLR[],int LNR[],int &n,int start,int end,int &mid)
{
if(n<=2)
{//输出前序队列中的数据
return;
}
else
{//输出NLR[satrt]
//用NLR[satrt]分割LNR找出mid
n--;
devide(NLR,LNR,n,start+1,mid-1,mid1);
devide(NLR,LNR,n,mid+1,end,mid2);
}
}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧