sicily 1156.先序遍历二叉树
来源:互联网 发布:mac 修改系统版本号 编辑:程序博客网 时间:2024/06/05 10:51
#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;}