本题要求输出树相应层的所有节点,故只需记录所有节点的值,并计算该层所有节点的下标即可。
#include<stdio.h> #include<math.h> using namespace std; int main(){ int n,buf[1001],d; while(scanf("%d",&n) != EOF){ for(int i=1;i<=n;i++){ scanf("%d",&buf[i]); } scanf("%d",&d); int m; m=pow(2,d-1); //第d层的第一个节点 if(m>n) printf("EMPTY\n"); //第d层无节点 else{ while(m<n && m<pow(2,d)-1){ //输出第d层第一个至倒数第二个节点 printf("%d ",buf[m]); //节点间用空格隔开 m++; } printf("%d\n",buf[m]); //最后一个节点,后面没有空格 } } return 0; }
九度oj 1176 树查找
最新推荐文章于 2019-03-25 09:39:02 发布