`

判断一棵树是否对称(C实现)

 
阅读更多

// Type your C++ code and click the "Run Code" button!

// Your code output will be shown on the left.

// Click on the "Show input" button to enter input data to be read (from stdin).

 

#include <iostream>

using namespace std;

 

typedef int DATA;

 

typedef struct Node

{

    DATA val;

    struct Node *left;

    struct Node *right;

} TNode;

 

bool sym(TNode *l, TNode *r) {

    if(!l && !r) return true;

    if(!l || !r) return false;

    if(l->val != r->val) return false;

    return sym(l->left, r->left) && sym(l->right, r->right);

}

 

bool isSym(TNode *root) {

    if(!root) return true;

    return sym(root->left, root->right);

}

 

int main() {

    

    TNode l = {val:12, left:NULL, right:NULL};

    TNode r = {val:2, left:NULL, right:NULL};

    TNode root = {val:10, left:&l, right:&r};

    

    string result = isSym(&root)? "yes" : "no";

    

    cout << result << endl;

    

    return 0;

}

分享到:
评论

相关推荐

    对称二叉树21

    对称二叉树是指一棵二叉树,其左右子树镜像对称,也就是说,它的左子树和右子树是镜像对称的。在本文中,我们将详细介绍对称二叉树的概念、判断方法和编程实现。 一、对称二叉树的概念 对称二叉树是指一棵二叉树,...

    BitTree_order_output_树_数据结构_

    镜像对称树,顾名思义,是指一棵树经过水平翻转后与其原本的形态完全一致,这种特性在某些特定的算法中十分关键。 首先,我们要理解树的基本概念。树是由若干个节点(或称为顶点)和边组成的数据结构,每个节点都有...

    数据结构与算法练习试卷1(题后含答案及解析)_2.pdf

    接下来,A 是 E 的右子节点,B、C、D 是 A 的子节点,形成另一棵树。P 和 G 分别是 A 的左、右子节点,它们各自形成独立的树。F 是 P 的右子节点,形成了第三棵树。因此,树林由 E、A、P 和 G 四棵树组成,但因为 E ...

    数据结构(C语言版) 第六章 图 知识梳理 + 习题详解1

    1. 最小生成树:在连通图中找到一棵包括所有顶点且总权重最小的树。常用的算法有Prim算法和Kruskal算法。 2. 最短路算法:Dijkstra算法是解决单源最短路径问题的一种经典算法,适用于边权重非负的情况。 3. 拓扑...

    ACM/ICPC算法大全(c语言)

    本节介绍了如何判断一个图是否为弦图。 - **弦图的PERFECT ELIMINATION点排列** - 对于弦图,可以通过完美消元顺序(Perfect Elimination Order, PEO)简化某些问题的解决。 - **稳定婚姻问题O(N^2)** - 稳定...

    宁夏固原地隆德二中八年级上期中试卷精选.doc

    20. **最短路径问题**:第20题中,小鸟从一棵树飞到另一棵树的树梢,需要求解的是两棵树顶点之间的垂直距离,这是两点间最短路径。 以上是针对期中试卷各题目的详细解析,涵盖了无理数、几何图形性质、代数运算等多...

    三月计算机等级考试三级数据库技术笔试真题及答案.pdf

    12. **二叉树**:二叉树的树林对应的第一棵树的根是二叉树的最左边的节点,即节点A。 13. **线索二叉树**:对称序线索二叉树中,结点E的右线索指向其父节点,所以是节点A。 14. **AVL树**:AVL树是自平衡二叉搜索...

    《数据结构》实验

    2、设计算法判断一个算术表达式的圆括号是否配对。(提示:对表达式进行扫描,遇‘(’进栈,遇‘)’退掉栈顶的‘(’,表达式被扫描完毕,栈为空) 3、假设以带头结点的循环链表表示队列,并只设一个指针指向队尾,...

    计算机统考408试题刷题版

    对于高度为5的二叉树,至少需要16个节点(满二叉树的情况),但题目中说有10个节点,所以至少需要15个存储单元来存储这棵树,答案是C。 4. **森林和二叉树的遍历**:先根遍历、中根遍历和后根遍历是树结构的三种...

    ACM编程题模板和各种经典算法数据结构实现代码

    - MINIMAL STEINERTREE问题是在图中寻找一棵包含特定顶点集的树,并使得这棵树的总权重最小。 16. **TARJAN强连通分量** - 强连通分量是指图中任意两点都相互可达的最大子图。TARJAN算法可以在线性时间内找到...

    教材全解湘教版八年级数学下册第一章检测题及答案解析精选.doc

    4. **最短路径问题**:如第2题,小鸟从一棵树飞到另一棵树,通过勾股定理找到最短路径,即两树顶点之间的直线距离。 5. **全等三角形的判定**:全等三角形是指形状和大小完全相同的两个三角形,它们的对应边和对应...

    二年级下册数学试题-期末测试卷(一)-北京版(含答案).pdf

    在选择题中,第一题涉及平均分配的问题,正确答案是B.15÷5,表示15棵树平均分成5行,每行应该种3棵。第二题考察重量单位的比较,1千克等于1000克,所以1千克沙子的重量等于1000克棉花的重量,答案是C.=。第三题...

    通信软件基础实训

    - **构造方法:** 将字符按照频率从低到高排序,每次选取两个频率最小的节点合并为新的节点,并更新频率,重复此过程直到形成一棵树。 - **遍历方法:** 通过遍历哈弗曼树,可以为每个字符分配唯一的编码。通常采用...

    2010年3月计算机等级考试三级数据库笔试真题

    二叉树的性质和操作在题目中也有体现,例如,二叉树可以转化为树林,第一棵树的根是树中没有左孩子的节点,对称序线索二叉树用于快速遍历。 AVL树是一种自平衡二叉搜索树,其中任何节点的两个子树的高度差不超过1。...

    09春《数据结构与算法分析》试卷A1

    - **转换规则:** 森林中的每一棵树都可以转换成一棵二叉树,而整个森林转换成二叉树时,需要把森林中树的根节点依次连接起来作为二叉树的右子树。 - **具体步骤:** 将森林中的每一棵树转换为二叉树后,从左到右...

    木渎实验中学第一学期八年级数学期中考试卷.doc

    - 第11题,小鸟飞行的距离是两棵树高度差的平方加上两棵树间距的平方的平方根,即勾股定理的应用。 - 第12题,菱形中找最短路径,涉及两点间线段最短的原理和等边三角形的性质。 2. **选择题**: - 13题,直角...

    基于极大极小分析法的井字棋对弈.doc

    在每一轮中,程序会构建一棵树,其中每个节点代表一个可能的游戏状态。根节点是当前游戏状态,后续节点代表从当前状态出发的所有可能行动结果。对于每个节点,程序都会预测未来所有可能的结果,并基于这些结果选择...

    数据结构课件:11 【习题课】第4章(含拓扑排序).ppt

    如果一棵二叉树的所有叶节点在三种次序下排列相同,说明其结构对称,这种说法是正确的。 3. **完全二叉树的判断**: - 完全二叉树的定义:在完全二叉树中,除了最后一层外,每一层都是满的,而最后一层的节点都尽...

    21二次函数演示文稿.ppt

    如果增加`x`棵橙子树,那么总共的树数就是 `(100+x)`,但由于光照和间距的影响,每棵树的产量会减少5个橙子,变为`(600-5x)`。因此,总产量`y`与增加的树数`x`的关系式可以表示为 `y = (100+x)(600-5x)`,进一步化简...

Global site tag (gtag.js) - Google Analytics