当前位置: 首页 > news >正文

学做网站能赚多少优设网免费素材

学做网站能赚多少,优设网免费素材,wordpress 美化 插件,璧山集团网站建设前言 本篇博客我们来看一些二叉树的经典题型,也是对上篇博客的补充 💓 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论区见📝 🎉欢迎大家点赞👍收藏⭐文章 ​ 目录 1.单值二叉树 …

前言

本篇博客我们来看一些二叉树的经典题型,也是对上篇博客的补充

💓 个人主页:小张同学zkf

⏩ 文章专栏:数据结构

      若有问题 评论区见📝

🎉欢迎大家点赞👍收藏⭐文章 ​

 

 

目录

1.单值二叉树

2.检查两棵树是否相同

3.对称二叉树

​编辑 

4.二叉树的前序遍历

 5.另一棵树的子树


 

1.单值二叉树

 

这道题有两种思路,一种是最简单的也是最常见的思路,遍历,就是把每个节点遍历一遍,看是否值相等(代码过于简单就不写了),还有一种思路就是递归,通过递归,判断孩子与父亲是否相等,若相等进行下次递归,直到节点为空,就代表是单值二叉树,我们写下递归方式的代码

代码如下


2.检查两棵树是否相同

 

 这道题我们可以让两颗子树分别遍历,直到双方节点同时都为空,就相等若是一方节点先为空则两棵树不相等,若遍历的同时值不相等,那两棵树也不相等,代码如下


3.对称二叉树

 

 

 这个对称二叉树就判断左子树与右子树是否相等就行了,也就是说把根节点的左右子树放到上面那道题函数里判断就行了

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if(p==NULL&&q==NULL)return true;if(p==NULL||q==NULL)return false;if(p->val!=q->val)return false;return isSameTree(p->left,q->right)&&isSameTree(p->right,q->left);
}
bool isSymmetric(struct TreeNode* root) {return isSameTree(root->left,root->right);
}

注意一下,这里要看左子树与右子树比较是否相等 ,所以传参的时候注意下


4.二叉树的前序遍历

 

前序遍历我们上篇博客说过,但是这个前序遍历将所有根节点的数据,存储到数组中,以数组的形式返回,我们先开辟一个动态数组的空间, 将数组首地址与首下表,传入函数中,创建前序遍历函数,不过在此之前要统计一下二叉树的节点个数,得到数组里数据个数,然后通过递归将每个数据放入数组中,记得下标自增

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
/*** Note: The returned array must be malloced, assume caller calls free().*/int number(struct TreeNode* root){return root==NULL?0:number(root->left)+number(root->right)+1;}void preorder(struct TreeNode* root,int* a,int* pi){if(root==NULL)return;a[(*pi)++]=root->val;preorder(root->left,a,pi);preorder(root->right,a,pi);}
int* preorderTraversal(struct TreeNode* root, int* returnSize) {*returnSize=number(root);int* a=(int *)malloc(sizeof(int)*(*returnSize));int i=0;preorder(root,a,&i);return a;
}

中序后序亦是如此


 5.另一棵树的子树

相当于直接通过前序遍历把所有子树找到,然后依次导入我们上边说的判断两棵树是否相等的函数里就行了 ,前提俩子树数据相等

代码如下


结束语 

典型的二叉树有关习题总结完了,二叉树主要是遍历,要想判断二叉树里什么什么的可能都得需要遍历,遍历那肯定需要递归,所以递归一定要弄明白

OK,本篇博客结束,感谢观看!!!

 

http://www.yayakq.cn/news/966244/

相关文章:

  • ps制作网站背景网站用什么建设
  • 做报纸能经常更新网站php网站开发原理
  • 网站需求分析网站建设怎么制作手机网页
  • 深圳网站建设公司制作定制企业网站优化怎么提高关键词排名
  • 2013一汽大众企业网站车主俱乐部建设维护方案做企业咨询管理怎么样
  • 公装网站怎么做wordpress 文章内容分页
  • 个人网站建设中代码下载网站建设的维护工作有哪些
  • 商城网站开发需要哪些人员介休网站建设
  • 网站开发职位描述wordpress怎么导入html
  • 怎么查看网站快照网页线上开发制作
  • 广东营销网站建设服务郑州建设网
  • php如何制作网站网站后台功能开发
  • 国外网站如何建设手机百度快照
  • 北京泰达建设有限公司网站网页游戏吧
  • 东莞建设网站公司哪家好wordpress 设计套程序
  • 官方网站怎么找郑州工装定制厂家哪家好
  • 绵阳做手机网站深圳市建设工程交易服务
  • 网站建设职位名称软件开发公司账务处理
  • 制作公司主页网站射洪县住房和城乡建设局网站
  • 微站小程序地方网站还有得做吗
  • 沈阳网站设计开发中信建设有限责任公司湖南省人防建筑设计院
  • wordpress 子站承德 网站维护
  • 网站模版 拓中装建设集团董事长
  • 个人网站建设推广服务苏州建设工程招标在哪个网站
  • 上海做网站的公司wordpress推荐新用户
  • 做网站软件pswordpress备份图文文章
  • 做蛋糕招聘网站wordpress后台太慢
  • 淄博网泰专业做网站做网站颜色黑色代码多少钱
  • 陕西专业网站建设价格wordpress主题界面
  • 网站后台灰色千锋教育地址