1. 程式人生 > >C語言資料結構——分析二叉樹的相似性

C語言資料結構——分析二叉樹的相似性

程式碼比較簡單,瀟小白就直接放程式碼啦!如果有什麼問題歡迎在下方評論哦!讓我們一起進步,向大佬進發!

程式碼如下:

#include <stdio.h>
#include <malloc.h>
#include <conio.h>

typedef char ElemType;

typedef struct node
{
    ElemType data; //資料元素
    struct node *lchild; //指向左孩子
    struct node *rchild; //指向右孩子
}*BitTree;

void CreatBiTree(BitTree *bt)
{
    char ch;
    ch=getchar();
    if
(ch=='#') *bt=NULL; else { *bt=(BitTree)malloc(sizeof(BitTree)); (*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 main() { BitTree T1,T2; int treeleaf; printf("請先輸入二叉樹A中的元素(以擴充套件先序遍歷序列輸入其中,其中#代表空子樹):\n"
)
; CreatBiTree(&T1); getchar(); printf("請輸入二叉樹B中的元素(以擴充套件先序遍歷序列輸入其中,其中#代表空子樹):\n"); CreatBiTree(&T2); treeleaf=Like(T1,T2); if(treeleaf) printf("A與B相似\n"); else if(treeleaf==0) printf("A與B不相似\n"); }

執行結果如下:
這裡寫圖片描述

因為瀟小白也是一個程式碼初期學習者,所以寫的都是比較簡單的程式,希望大家不要嫌棄哦,小編也會繼續為大家呈現優秀的程式碼的!謝謝大家的支援!