解题报告-PAT-List Leaves

来源:互联网 发布:ui需要编程吗 编辑:程序博客网 时间:2024/05/29 15:10
# include <stdio.h># include <stdlib.h># include <string.h># include <algorithm># include <iostream># define MAX 10# define Null -1typedef struct node{int left;int right;}Tree;int main(){Tree tree[MAX];int q[MAX];char l,r;int n,root;int flag[MAX]={0};scanf("%d\n",&n);for(int i = 0; i < n; i++){scanf("%c %c",&l,&r);getchar();if(l == '-') tree[i].left = Null;else{tree[i].left = l-'0';flag[l-'0'] = 1; // 表示这个节点已经出现过 }if(r == '-') tree[i].right = Null;else{tree[i].right = r-'0';flag[r-'0'] = 1;} }for(int i = 0; i < n; i++){if(!flag[i]){root = i;break;}}q[0]=root; int p;int front = 0, rear = 1;int temp = 0;//层次遍历寻找叶子节点while(front < rear){p=q[front++];if(tree[p].left!=Null)q[rear++] = tree[p].left;if(tree[p].right!=Null)q[rear++] = tree[p].right;if(tree[p].left==Null && tree[p].right==Null){if(temp) printf(" ");temp++;printf("%d",p);}} return 0;} 

0 0
原创粉丝点击