2012 북우망 연구기 시험 문제

1480 단어 기계 시험 문제
100. 두 갈래 나무의 층수
시간 제한 1000ms 메모리 제한 65536KB
제목 설명
선생님은 마보 시험을 보고 싶은 문제가 하나 있는데, 마보는 할 줄 몰라서 도와달라고 부탁하고 싶어요.
문제는 다음과 같습니다.
두 갈래 나무 하나 주세요.
이 두 갈래 나무를 층별로 인쇄해 주세요.같은 레이어인 경우 왼쪽에서 오른쪽으로 인쇄해야 합니다.하나의 노드는 왼쪽 노드를 먼저 추가한 후에 오른쪽 노드를 추가하는 것이다. 즉, 추가 순서는 입력 순서와 일치한다.
형식 입력
먼저 정수 T를 입력하면 모두 T그룹 데이터가 0임을 나타낸다
정수 N, M 두 개 더 입력(0<=N, M<=100)
아래에 N줄이 있음을 나타냅니다. 이 나무는 M개의 노드가 있습니다. (1번 노드는 이 나무의 뿌리 노드)
한 줄당 두 개의 정수 a, b(1<=a, b노드 a의 아버지가 노드 b라는 것을 나타낸다
출력 형식
각 그룹에 대해
"Qi:"줄을 먼저 출력하면 i 번째 문제를 나타냅니다.
그 다음에 각 문제의 두 갈래 트리 각 층의 노드를 출력하고, 같은 층의 노드는 빈칸으로 나누고, 같은 층의 출력은 한 줄(각 줄의 끝에 빈칸이 없음), 다른 층의 출력은 동행하지 않습니다(아래 샘플 Ouput 참조)
샘플 가져오기

4 5
2 1
3 1
4 2
5 4
1 2
2 1
샘플 내보내기
Q1:

2 3


Q2:


  
#include
using namespace std;
const int maxn =110;

typedef struct Tree{
    int deep,lchild,rchild;
};
int T,n,m,a,b,i,j,k,t,Mdeep;
int main(){
    t=1;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&m);
        Tree tree[maxn];
        for(i=0;i<=m;i++){
            tree[i].deep=0;
            tree[i].lchild=-1;
            tree[i].rchild=-1;
        }
        Mdeep=1;
        tree[1].deep=1;
        for(i=0;i

좋은 웹페이지 즐겨찾기