2163: The Matrix
| Result | TIME Limit | MEMORY Limit | Run Times | AC Times | JUDGE |
|---|---|---|---|---|---|
| 3s | 8192K | 390 | 166 | Standard |
- We name the root node 'A',that means All other's parent.
- If a node's name is s (s is a string), its left child node's (if there is one) name is sL, and its right child node's name is sR.
A
/ /
/ /
AL AR
/
/
ALR
/
/
ALRL
Now we give you some node's name in random order, can you give the preorder traversal of the tree?
Note: a preorder traversal is: for any node you have to print its own's name first, then traversal its left sub tree, and then its right sub tree. For the tree above, the preorder traversal is like this: A, AL, ALR, ALRL, AR
Input
There are several test cases. For each case, the first line is a integer n (0 < n <= 10000) which tell you how many nodes you'll have to read, followed by n strings, each is a node name.Output
Print the node names in preorder traversal, one name per line.Print a blink line after each test case.
Sample Input
5 AL AR ALRL ALR A 1 A
Sample Output
A AL ALR ALRL AR A
Problem Source: fafey
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string a[10000];
int n;
while(cin>>n)
{
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++) cout<<a[i]<<endl;
cout<<endl;
}
return 0;
}
本文介绍了一种特殊的二叉树表示方法,并提出了一道编程题:根据给定节点名称进行二叉树的前序遍历。文章通过示例说明了如何构建二叉树并完成遍历过程。
2715

被折叠的 条评论
为什么被折叠?



