Tree Recovery--POJ 2255
6322 단어 tree
2. 문제 풀이 사고방식: 이미 알고 있는 두 갈래 나무의 앞 순서가 두루 다니고, 중간 순서가 두루 다니며, 뒷 순서가 두루 다니기를 구한다.
3. 주의사항: 두 갈래 나무 구조에서 귀속적인 사용.
4. 구현 방법:
#include
<
iostream
>
#include
<
string
>
using
namespace
std;
struct
Node{
char
data;
Node
*
lchild;
Node
*
rchild;
};
string
prestr,midstr;
Node
*
CreateTree(
string
pre,
string
mid)
{
Node
*
root
=
NULL;
if
(pre.length()
>
0
)
{
root
=
new
Node;
root
->
data
=
pre[
0
];
int
index
=
mid.find(root
->
data);
root
->
lchild
=
CreateTree(pre.substr(
1
,index),mid.substr(
0
,index));
root
->
rchild
=
CreateTree(pre.substr(index
+
1
),mid.substr(index
+
1
));
}
return
root;
}
void
PostOrder(Node
*
root)
{
if
(root
!=
NULL)
{
PostOrder(root
->
lchild);
PostOrder(root
->
rchild);
cout
<<
root
->
data;
}
}
int
main()
{
while
(cin
>>
prestr
>>
midstr)
{
Node
*
tmp
=
CreateTree(prestr,midstr);
PostOrder(tmp);
cout
<<
endl;
}
return
1
;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이진 트리 가지치기이진 트리의 root가 주어지면 1을 포함하지 않는 (지정된 트리의) 모든 하위 트리가 제거된 동일한 트리를 반환합니다. 노드node의 하위 트리는 node에 node의 자손인 모든 노드를 더한 것입니다. 이 문제는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.