//完全二叉树最适合用顺序存储实现,其他二叉树也可以,但要做标记,标记某处有没有节点
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100
int tree[MAXN+1];
int book[MAXN+1];
int main()
{
memset(book,0,sizeof(book));
for(int i=1;i<=10;i++){
int nodenumber;
int data;
scanf("%d%d",&nodenumber,&data);
tree[nodenumber]=data;
book[nodenumber]=1;
}
for(int i=1;i<=10;i++){
int searchnode;//输出searchnode的值和其两个儿子的值
scanf("%d ",&searchnode);
if(2*searchnode<=MAXN&&book[2*searchnode])
printf("%d ",tree[2*searchnode]);
if(2*searchnode+1<=MAXN&&book[2*searchnode+1])
printf("%d ",tree[2*searchnode+1]);
}
return 0;
}
数字代表节点编号