回覆列表
  • 1 # 使用者31785243632

    #include

    #include

    #include

    typedef int DataType;

    typedef struct Node

    {

    DataType data;

    struct Node *LChild;

    struct Node *RChild;

    }BitNode,*BitTree;

    void CreatBiTree(BitTree *bt)//用擴充套件先序遍歷序列建立二叉樹,如果是.當前樹根置為空,否則申請一個新節點//

    {

    char ch;

    ch=getchar();

    if(ch==".")*bt=NULL;

    else

    {

    *bt=(BitTree)malloc(sizeof(BitNode));

    (*bt)->data=ch;

    CreatBiTree(&((*bt)->LChild));

    CreatBiTree(&((*bt)->RChild));

    }

    }

    int like(BitTree b1,BitTree b2)/*判斷兩個樹是否相似*/

    {

    int like1,like2;

    if(b1==NULL&&b2==NULL)

    return 1; /*兩個為空子樹、相似*/

    else if(b1==NULL||b2==NULL)

    return 0; /*兩個中某一個為空子樹、不相似*/

    else

    {

    like1=like(b1->LChild,b2->LChild);

    like2=like(b1->RChild,b2->RChild);

    return(like1&&like2);

    }

    }

    void PrintTree(BitTree Boot,int nLayer) //按豎向樹狀列印的二叉樹 //

    {

    int i;

    if(Boot==NULL) return;

    PrintTree(Boot->RChild,nLayer+1);

    for(i=0;i

  • 中秋節和大豐收的關聯?
  • 相機的鏡頭鍍膜如果擦掉了會怎麼樣?