日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树根c语言,03-树1 树的同构 (C语言链表实现)

發布時間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树根c语言,03-树1 树的同构 (C语言链表实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#include

#include

#include

#include

typedef char ElemType;

typedef struct BinTree

{

ElemType data;

struct BinTree *left;

struct BinTree *right;

}BinTree;

bool TreeCmp(BinTree * a, BinTree * b); //判斷a樹與b樹是否同構

BinTree * BinTree_new(int n);

int main()

{

int n;

scanf("%d", &n);

BinTree * a = BinTree_new(n);

scanf("%d", &n);

BinTree * b = BinTree_new(n);

bool flag = TreeCmp(a, b);

if (flag)

printf("Yes");

else

printf("No");

;

}

BinTree * BinTree_new(int n)

{

)

{

return NULL;

}

else

{

int i, li, ri;

ElemType c, lc, rc;

BinTree * T = (BinTree *)malloc(n * sizeof(BinTree));

bool *head = (bool *)malloc(n * sizeof(bool));

memset(head, true ,sizeof(head));

; i < n ; ++i )

{

scanf(" %c %c %c", &c, &lc, &rc);

li = lc-';

ri = rc-';

T[i].data = c;

if (lc != '-')

{

T[i].left = &T[li];

head[li] = false;

}

else

T[i].left = NULL;

if (rc != '-')

{

T[i].right = &T[ri];

head[ri] = false;

}

else

T[i].right = NULL;

}

//尋找樹的樹根(樹根沒有其它的結點指向它)

; i < n ; ++i )

if (head[i] == true)

break;

free(head);

return &T[i];

}

}

bool TreeCmp(BinTree * a, BinTree * b)

{

if (a == NULL && b == NULL)//兩棵樹都為空

return true;

if (a == NULL || b == NULL)//有一棵樹為空

return false;

if (a->data != b->data)//樹結點的值不相等

return false;

if (a->left == NULL && b->left == NULL)//兩棵樹的左子樹都為空

return TreeCmp(a->right, b->right);//就比較右子樹

//兩棵樹的左子樹都不為空,且兩個值相等就比較兩棵樹的子樹

if (a->left != NULL && b->left != NULL &&(a->left->data == b->left->data))

return (TreeCmp(a->left,b->left)&&TreeCmp(a->right,b->right));

//交換后再比較

else

return (TreeCmp(a->left,b->right)&&TreeCmp(a->right,b->left));

}

小白專場-樹的同構-c語言實現&period;md

目錄 一.題意理解 二.求解思路 2.1 二叉樹表示 2.2 程序框架搭建 2.3 如何建二叉樹 2.4 如何判別兩二叉樹同構 更新.更全的的更新網站,更有python. ...

【查找結構5】多路查找樹&sol;B~樹&sol;B&plus;樹

在前面專題中講的BST.AVL.RBT都是典型的二叉查找樹結構,其查找的時間復雜度與樹高相關.那么降低樹高自然對查找效率是有所幫助的.另外還有一個比較實際的問題:就是大量數據存儲中,實現查詢這樣一個實 ...

9-11-Trie樹&sol;字典樹&sol;前綴樹-查找-第9章-《數據結構》課本源碼-嚴蔚敏吳偉民版

課本源碼部分 第9章? 查找 -?Trie樹/字典樹/前綴樹(鍵樹) ——-嚴蔚敏.吳偉民版 ? ? ? ?源碼使用說明? 鏈接??? (嚴蔚 ...

HTTP協議漫談 C&num;實現圖(Graph&rpar; C&num;實現二叉查找樹 淺談進程同步和互斥的概念 C&num;實現平衡多路查找樹&lpar;B樹&rpar;

HTTP協議漫談 ? 簡介 園子里已經有不少介紹HTTP的的好文章.對HTTP的一些細節介紹的比較好,所以本篇文章不會對HTTP的細節進行深究,而是從夠高和更結構化的角度將HTTP協議的元素進行分類講 ...

Tire樹&lpar;字典樹&rpar;

from:https://www.cnblogs.com/justinh/p/7716421.html Trie,又經常叫前綴樹,字典樹等等.它有很多變種,如后綴樹,Radix Tree/Trie,P ...

BZOJ 3110&colon; &lbrack;Zjoi2013&rsqb;K大數查詢 &lbrack;樹套樹&rsqb;

3110: [Zjoi2013]K大數查詢 Time Limit:?20 Sec??Memory Limit:?512 MBSubmit:?6050??Solved:?2007[Submit][Sta ...

BZOJ4170 極光(CDQ分治 或 樹套樹)

傳送門 BZOJ上的題目沒有題面-- [樣例輸入] 3 5 2 4 3 Query 2 2 Modify 1 3 Query 2 2 Modify 1 2 Query 1 1 [樣例輸出] 2 3 3 ...

bzoj3262&colon; 陌上花開&lpar;樹套樹&rpar;

#include #include #include #include #i ...

bzoj3295&colon; &lbrack;Cqoi2011&rsqb;動態逆序對(樹套樹)

#include #include #include #include #i ...

隨機推薦

Trapping Rain Water

Given?n?non-negative integers representing an elevation map where the width of each bar is 1, comput ...

&commat;ControllerAdvice

@ControllerAdvice,是spring3.2提供的新注解,從名字上可以看出大體意思是控制器增強.讓我們先看看@ControllerAdvice的實現: @Target(ElementTyp ...

基于&period;net mvc的校友錄(三、實體模型實現)

實體模型設計 由于是實際開發,而且是時間比較緊的,所以,在開發實現過程中,總有一些對原計劃的改動: AlumniBookModel數據庫實體模型 這是主數據實體類,EF會根據此實體生成數據庫,它的每一 ...

android 點擊重新加載界面設計

在項目中經常會遇到這樣的場合,用戶點擊了一個界面后要提示等待加載,最后有可能顯示加載失敗,點擊屏幕再重試加載.下面是該實例的代碼: layout: loading.xml <?xml versi ...

綁定下拉框時避免觸發SelectedIndexChanged事件

在從數據庫讀取數據集綁定到下拉框時會立即觸發其SelectedIndexChanged事件造成異常,可對其SelectedIndexChanged事件采取先解除后附加的方法解決. cmbXl_gt.V ...

Qt編程之實現在QFileDialog上添加自定義的widget

上網搜索找到的方法如下: http://www.qtforum.org/article/20841/how-to-add-a-qwidget-in-qfiledialog.html#post78422 ...

Oracle閃回詳解

1.問題定義 閃回是dba做的工作.現在也可授權給某個用戶. 閃回的定義:就是將用戶錯誤的操作回恢到以前的狀態.即使你的事務提交的commit. 如果你刪除了一個表.Drop table(DDL) ...

OOP的五大原則

一:單一職責原則. 含義一方面是避免相同的職責分散到不同的類中:另一方面避免一個類承擔太多職責. 二:接口隔離原則. 一個類對另一個類的依賴性應當建立在最小的接口上的. 就是定制化服務設計的原則. 三 ...

kivy 使用webview加載網頁

from kivy.app import App from kivy.uix.widget import Widget from kivy.clock import Clock from jnius ...

總結

以上是生活随笔為你收集整理的树根c语言,03-树1 树的同构 (C语言链表实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。