ACM-2차 트리
제목 1184: 두 갈래 나무가 두루 다니다
시간 제한: 1초
메모리 제한: 32메가바이트
특수 판제: 아니요
제출: 1562
해결
제목 설명:
사용자가 입력한 일련의 선행 문자열을 읽고 이 문자열에 따라 두 갈래 트리를 만들 수 있는 프로그램을 만듭니다.예를 들어 ABC##DE#G##F#####에서 "#"은 공백을 나타내고 공백 문자는 빈 트리를 나타냅니다.이 두 갈래 나무를 세운 후, 두 갈래 나무에 대해 중순으로 훑어보고, 훑어보는 결과를 출력합니다.
입력:
입력은 100을 넘지 않는 문자열 1행을 포함합니다.
출력:
여러 그룹의 테스트 데이터가 있을 수 있습니다. 각 그룹의 데이터에 대해 출력은 입력 문자열을 두 갈래 트리 뒤에 있는 서열을 만들고 문자 뒤에 공백이 있습니다.출력 결과마다 한 줄을 차지한다.
샘플 입력:
abc##de#g##f### 샘플 출력:
c b e g d f a 출처:
2002년 화중과학기술대학 컴퓨터 연구 생기시험 진제
/*********************************
* 날짜: 2013-3-7
* 작성자: SJF0115
*문제번호: 9도 OJ 문제 1184: 두 갈래 나무가 두루 다닌다
* 출처:http://ac.jobdu.com/problem.php?pid=1184
* 결과: AC
*출처: 2002년 화중과학기술대학 컴퓨터 연구 생기시험 진제
*요약:
**********************************/
#include
#include
#include
char array[101];
//두 갈래 나무 결점
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//순서대로 두 갈래 트리를 만듭니다
int CreateBiTree(BiTree &T,int &index,int &n){
if(index == n){
return 0;
}
//두 갈래 트리의 결점 값 (한 문자) 을 선착순으로 입력하고'#'은 빈 트리를 나타냅니다
if(array[index] == '#'){
T = NULL;
index++;
}
else{
T = (BiTree)malloc(sizeof(BiTNode));
//루트 결점을 생성합니다
T->data = array[index];
index++;
//왼쪽 트리를 구성합니다
CreateBiTree(T->lchild,index,n);
//구조 우자수
CreateBiTree(T->rchild,index,n);
}
return 0;
}
//출력
void Visit(BiTree T){
if(T->data != '#'){
printf("%c ",T->data);
}
}
//중순으로 두루 다니다
int InOrder(BiTree T){
if(T != NULL){
//왼쪽 하위 결점에 액세스합니다
InOrder(T->lchild);
//루트 노드에 액세스합니다
Visit(T);
//오른쪽 하위 결점에 액세스합니다
InOrder(T->rchild);
}
return 0;
}
int main()
{
int len,index;
while(scanf("%s",array) != EOF){
BiTree T;
len = strlen(array);
index = 0;
//두 갈래 트리를 생성합니다
CreateBiTree(T,index,len);
//중순으로 두루 다니다
InOrder(T);
printf("");
}
return 0;
}
참조:http://blog.csdn.net/sjf0115/article/details/8645571
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.