#include <iostream>
using namespace std;
typedef struct Tree
{
char element;
int leftchild;
int rightchild;
bool flag;//标记是否为根节点
}Tree;
Tree tree[1001];
void dfs(int number)
{
if(number == 0)
return;
else
{
cout << tree[number].element;
dfs(tree[number].leftchild);
dfs(tree[number].rightchild);
}
}
int main()
{
int number,head,n;
int temp[1001];
while(cin >> n)
{
//head = 0;
for(int i = 0;i < n;i++)
{
cin >> number;
temp[i] = number;
cin >> tree[temp[i]].element >> tree[temp[i]].leftchild >> tree[temp[i]].rightchild;
tree[temp[i]].flag = true;
//head = head ^ number ^ tree[number].leftchild ^ tree[number].rightchild;
}
for(int i = 0;i < n;i++)
{
int j = tree[temp[i]].leftchild;
int k = tree[temp[i]].rightchild;
tree[j].flag = false;
tree[k].flag = false;
}
for(int i = 0;i < n;i++)
{
if(tree[temp[i]].flag == true)
{
head = temp[i];
break;
}
}
dfs(head);
cout << endl;
}
return 0;
}
sicily 1156.先序遍历二叉树
最新推荐文章于 2016-12-02 10:58:35 发布