#include "iostream"

/*

输入:ABC DE G F

ABC DE G F

*/

#include "bits/stdc++.h"

using namespace std;

typedef struct bitnode

{

char data;

bitnode *lchild,*rchild;

} *bintree;

bintree creatree(bintree &root)//先序创建树

{

char a=getchar();

if(a==' ')

{

root=NULL;

return root;

}

else

{

root=(bintree)malloc(sizeof(bitnode));

root->data=a;

creatree(root->lchild);

creatree(root->rchild);

return root;

}

}

void PreOrderTraverse(bintree root)//InOrderTraverse中序 PostOrderTraverse 倒序

{

if(root==NULL)

{

return ;

}

else

{

PreOrderTraverse(root->lchild);

PreOrderTraverse(root->rchild);

cout<data<

}

}

int CountDegreeOne(bintree root)//度为一节点的个数

{

if(root==NULL)

return 0;

else

{

int a=CountDegreeOne(root->lchild);

int b=CountDegreeOne(root->rchild);

if(root->lchild&&!root->rchild||root->rchild&&!root->lchild)

return a+b+1;

else

return a+b;

}

}

int DeepTree(bintree root)//树的深度

{

if(root==NULL)

return 0;

else

{

int a=DeepTree(root->lchild);

int b=DeepTree(root->rchild);

if(a>=b)

return a+1;

else

return b+1;

}

}

int same(bintree root,bintree root1)//判断两棵树是否相同

{

if(root&&!root1||root1&&!root||!root&&!root1)

{

return 0;

}

else

{

if(root->data==root1->data)

{

int a=same(root->lchild,root1->lchild);

int b=same(root->rchild,root1->rchild);

if(a==b==1)

return 1;

}

else

return 0;

}

}

int main()

{

bintree root;

bintree root1;

creatree(root);

getchar();

creatree(root1);

PreOrderTraverse(root);

cout<

cout<

if(same(root,root1))

cout<

else

cout<

return 0;

}

数据结构树的基本操作_树的各类基本操作(数据结构)相关推荐

  1. python 树状数组_树状数组(Binary Indexed Tree) 总结

    1."树状数组"数据结构的一种应用 对含有n个元素的数组(a[1],...,a[k],...,a[n]): (1)求出第i个到第j个元素的和,sum=a[i]+...+a[j]. ...

  2. python数据结构和算法讲解_【学习】python数据结构和算法

    二.算法分析 2.2 什么是算法分析 大O表示法 image.png 2.3 python数据结构的性能 列表 image.png 字典 image.png 说一下list[index]的o(1)原理 ...

  3. 数据结构树的基本操作_[数据结构]树的建立与基本操作 解题报告

    Problem Description 在本实验中,程序的输入是一个表示树结构的广义表.假设树的根为 root ,其子树森林 F = ( T1 , T2 , ... , Tn ),设与该树对应的广义表 ...

  4. 常用的数据结构_三分钟了解区块链常用数据结构「默克尔树」

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 来源:万向区块链 原文标题:三分钟了解区块链常用数据结构「默克尔树」 默克尔树是 ...

  5. python链表和树实验报告_数据结构树和森林实验报告

    _ 树和森林应用实验 实验报告 实验目的 ( 1) 掌握树和森林的二叉链表表示方法. (2) 掌握树和二叉树的结构及算法之间的对应关系. (3) 掌握树的两种遍历算法及其应用. 实验运行环境 Visu ...

  6. js遍历树节点下的所有子节点_【数据结构与算法】(3)——树和二叉树

    树 树的基本概念 树是一种非线性的数据结构,样子如图所示: 树的主要特点是树中的数据是分层存储的,每个元素称为树的节点,最顶层有且只有一个元素,称为根节点,其余层可以有任意数量的节点.除了根节点,其余 ...

  7. Mysql索引数据结构有多个选择,为什么一定要是B+树呢?_面试 (MySQL 索引为啥要选择 B+ 树)

    Mysql索引数据结构 下面列举了常见的数据结构 二叉树 红黑树 Hash表 B-Tree(B树) Select * from t where t.col=5 我们在执行一条查询的Sql语句时候,在数 ...

  8. 数据结构与算法 实验5 树、二叉树和森林的基本操作

    1. 实验目的 理解树的存储结构,并掌握树的基本操作. 2. 实验介绍 了解树和森林的概念,包括树的定义.树的术语.掌握二叉树的概念.性质及二叉树的表示.熟练掌握二叉树的遍历算法,并且能灵活运用遍历算 ...

  9. 【数据结构】_树与二叉树

    目录 引言 一.什么是树? 1.树的定义 2.树的特点 3.树的表示法 二.树的一些基本术语 三.树的性质 四.什么是二叉树? 1.基本概念 2.二叉树的五种基本形态 3.二叉树的性质 五.满二叉树. ...

最新文章

  1. Mac MySQL 数据库配置(关系型数据库管理系统)
  2. 第八届全国大学生智能汽车竞赛获奖名单
  3. Flex使用cookie保存登状态
  4. 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )
  5. sublime Text3插入参考文献问题
  6. linux内核微妙时,Linux内核模块时间同步函数汇总
  7. CentOS6.5 gcc升级到4.8.2
  8. python方差分析模型的预测结果怎么看_statsmodels中方差分析表结果解析
  9. Smart-Mall新零售商城系统
  10. KSQL中Update多表级联更新的语法
  11. mysql inet addr_InetAddress类的使用
  12. CSS background-position用法
  13. SQL2005学习(十六),SQL小知识点
  14. spring service加上@autowired 空指针_Spring整合activeMQ和JsonP
  15. 苹果CMS采集方法支持文章资源采集
  16. MAX30102 血氧调试笔记
  17. matlab钉子链条,MatLab的Galton钉板问题训练报告 终极版
  18. h5 - mui 使用技巧
  19. 操作rabbitMQ时,误删guest账户,无法登录
  20. 机器学习:XGBoost+LightGBM+catboost+5折+stacking的用法

热门文章

  1. 反转字符串中的单词 III leetcode
  2. YBTOJ洛谷P2387: 魔法森林(LCT)
  3. 字符串:凯撒密码(洛谷P1914)
  4. P3172-[CQOI2015]选数【dp,容斥】
  5. CF966E-May Holidays【虚树,分块】
  6. P5662-纪念品【dp】
  7. nssl1185-试卷【状态压缩】
  8. P1197-星球大战【并查集,图论】
  9. C. Minimum Grid Path(思维)
  10. codeforces1271 D. Portals(dp or 带悔贪心)