用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

数据结构与算法----2.6 先序、中序遍历建立二叉树的二叉链表,二叉树元素互异

2019-07-21 作者: Ryan2019举报

[c++]代码库

#include <iostream>
using namespace std;
typedef char TElemType;
typedef struct BiTNode
{
    TElemType data;
    BiTNode *lc,*rc;
}*BiTree;
void xzCreateBiTree(BiTree &T,char s1[],char s2[],int n);//先序遍历和中序遍历建立二叉树的二叉链表
void BiTreeLists(BiTree &T);//广义表形式输出
int main()
{  
    BiTree T;int n=8;char s1[]="ACEHFBGD";char s2[]="HECFAGBD";
    cout<<"二叉树的先序遍历是:"<<s1<<endl;
    cout<<"二叉树的中序遍历是:"<<s2<<endl;
    xzCreateBiTree(T,s1,s2,n);
    cout<<"该二叉树(广义表形式)为:";
    BiTreeLists(T);
    cout<<endl;
     
    return 0;
}
void xzCreateBiTree(BiTree &T,char s1[],char s2[],int n)
{  
    if(n==0){T=NULL;return;}
     
    for(int i=0;i<n;i++)
    {
        if(s2[i]==s1[0])
        {
            T=new BiTNode; T->data=s1[0];       
            xzCreateBiTree(T->lc,s1+1,s2,i);
            xzCreateBiTree(T->rc,s1+i+1,s2+1+i,n-i-1);break;
        }
    }      
}
 
void BiTreeLists(BiTree &T)
{
    if(!T) {cout<<'#';return;}
    cout<<T->data;
    if(T->lc ||T->rc)
    {
        cout<<'(';
        BiTreeLists(T->lc);
        cout<<',';
        BiTreeLists(T->rc);
        cout<<')';
    }
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...