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;}                                 


原创粉丝点击