층층이 두루 다니다

2881 단어

데이터 구조 실험의 두 갈래 트리 5: 층차 반복



Time Limit: 1000MS Memory limit: 65536K


제목 설명


abd,eg,,,,cf,,, (그 중에서 빈 결점을 나타냄) 와 같은 선순으로 입력된 문자 서열을 알고 있습니다.두 갈래 나무를 만들고 두 갈래 나무의 차원 역행 서열을 구하십시오.

입력


 
입력 데이터가 여러 줄이고 첫 번째 줄은 정수 t(t<1000)로 t줄 테스트 데이터가 있음을 나타낸다.줄마다
길이가 50자 미만인 문자열

출력


 
두 갈래 트리의 차원 반복 시퀀스를 출력합니다.

예제 입력

2
abd,,eg,,,cf,,,
xnl,,i,,u,,

예제 출력

abcdefg

xnuli
대기열 방법:
#include #include #include #include using namespace std; char p[100];int i; struct node {     char data;     struct node *l,*r; }; struct node *creat(struct node *q) { if(p[i++]==',') q=NULL; else{q=(struct node *)malloc(sizeof(struct node)); q->data=p[i-1]; q->l=creat(q->l); q->r=creat(q->r); } return q; } void levertravel(struct node *t)     {         queueq;         if(t!=NULL)         q.push(t);         struct node *b;         while(!q.empty())         {             b=q.front();             printf("%c",b->data);             q.pop();             if(b->l)                 q.push(b->l);             if(b->r)                 q.push(b->r);         }     } int main() {int j; scanf("%d",&j);   while(j--)   {scanf("%s",p);   int c;i=0;       struct node *root;       root=(struct node *)malloc(sizeof(struct node));       root=creat(root);       levertravel(root);printf("");   }   return 0; }

좋은 웹페이지 즐겨찾기