免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3290 | 回复: 1
打印 上一主题 下一主题

[C++] 二叉树 数组 编程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-24 22:41 |只看该作者 |倒序浏览
本帖最后由 oscar16 于 2011-06-25 20:42 编辑

已知一颗具有n个结点滴完全二叉树被顺序存储于一维数组a[1]-a[n]元素中,试编写一个算法输出a结点的双亲和孩子。
#include <stdio.h>
#include <iostream>
#define MAX 50
void main()
{
int a[MAX],n,i;
printf(" 请输入二叉树的结点个数:");
scanf("%d",&n);
//input(a,n);
printf("请输入i:");
scanf("%d",&i);
parent(a,n,i);
child(a,n,i);
}
void parent(int a[],int n,int i)
{
if(i==1)
{
printf("无双亲 \n");
return;
}
else
printf("双亲:%d\n",a[(i-1)/2]);
}
void child(int a[],int n,int i)
{
int queue[MAX],front=0,tail=0,p;
queue[0]=i;tail++;
while(front<tail)
{
p=queue[front++];
if(p!=i)
printf("%d ",a[p-1]);
if(2*p<=n)
queue[tail++]=2*p;
if(2*p+1<=n) queue[tail++]=2*p+1;
}
}

求高手看下 哪里出错了?

论坛徽章:
0
2 [报告]
发表于 2011-06-25 02:04 |只看该作者
最恨那种不思考就上来求助的,把你写的代码贴上来大家看看。
有问题那些高手肯定义不容辞的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP