树的三种遍历

/* 7 2 3 1 5 7 6 4 1 2 3 4 5 6 7 * 4 1 6 3 5 7 2 */
#include<iostream>
#include<cstring>
#include<cstdlib>
typedef struct node
{
    struct node *left;
    struct node *right;
    int data;
}Node;
using namespace std;
Node *binarytree(int a[],int b[],int len)
{
    int i;
    if (len==0)
    return NULL;
    Node *tree;
    tree=(Node *)malloc(sizeof(Node));
    tree->data=a[len-1];
    for (i=0;i<len;i++)
    {
        if (b[i]==a[len-1])
        break;
    }
    tree->left=binarytree(a,b,i);
    tree->right=binarytree(a+i,b+i+1,len-i-1);
    return tree;
}
void printtree(Node *head)
{
    if (head==NULL)
    return ;
    else
    {
        //cout<<head->data<<" ";//前序
        printtree(head->left);
        //cout<<head->data<<" ";//中序
        printtree(head->right);
        //cout<<head->data<<" ";//后序
    }
}
int main()
{
    int n;
    cin>>n;
    int mid[n],next[n];
    for (int i=0;i<n;i++)
    cin>>next[i];
    for (int i=0;i<n;i++)
    cin>>mid[i];
    Node *tree;
    tree=binarytree(next,mid,n);
    printtree(tree);
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:30
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务