树根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語言實現.md
目錄 一.題意理解 二.求解思路 2.1 二叉樹表示 2.2 程序框架搭建 2.3 如何建二叉樹 2.4 如何判別兩二叉樹同構 更新.更全的的更新網站,更有python. ...
【查找結構5】多路查找樹/B~樹/B+樹
在前面專題中講的BST.AVL.RBT都是典型的二叉查找樹結構,其查找的時間復雜度與樹高相關.那么降低樹高自然對查找效率是有所幫助的.另外還有一個比較實際的問題:就是大量數據存儲中,實現查詢這樣一個實 ...
9-11-Trie樹/字典樹/前綴樹-查找-第9章-《數據結構》課本源碼-嚴蔚敏吳偉民版
課本源碼部分 第9章? 查找 -?Trie樹/字典樹/前綴樹(鍵樹) ——-嚴蔚敏.吳偉民版 ? ? ? ?源碼使用說明? 鏈接??? (嚴蔚 ...
HTTP協議漫談 C#實現圖(Graph) C#實現二叉查找樹 淺談進程同步和互斥的概念 C#實現平衡多路查找樹(B樹)
HTTP協議漫談 ? 簡介 園子里已經有不少介紹HTTP的的好文章.對HTTP的一些細節介紹的比較好,所以本篇文章不會對HTTP的細節進行深究,而是從夠高和更結構化的角度將HTTP協議的元素進行分類講 ...
Tire樹(字典樹)
from:https://www.cnblogs.com/justinh/p/7716421.html Trie,又經常叫前綴樹,字典樹等等.它有很多變種,如后綴樹,Radix Tree/Trie,P ...
BZOJ 3110: [Zjoi2013]K大數查詢 [樹套樹]
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: 陌上花開(樹套樹)
#include #include #include #include #i ...
bzoj3295: [Cqoi2011]動態逆序對(樹套樹)
#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 ...
@ControllerAdvice
@ControllerAdvice,是spring3.2提供的新注解,從名字上可以看出大體意思是控制器增強.讓我們先看看@ControllerAdvice的實現: @Target(ElementTyp ...
基于.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语言链表实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百信银行和分期乐什么关系
- 下一篇: SPI初始化C语言编程,SD卡spi模式