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

兰州市城乡建设局网站官网佛山移动网站设计

兰州市城乡建设局网站官网,佛山移动网站设计,海南城乡和住房建设厅网站,网站制作出租文章目录前言一、求二叉树节点个数二、求树的叶子结点个数三、求树的高度四、二叉树查找值为x的结点总结前言 笔者整理出了一些关于萌新在入门二叉树时容易犯的一些错误#xff0c;你也来试试自己会不会掉到这些坑里把~ 一、求二叉树节点个数 错误示例#xff1a; int Tre… 文章目录前言一、求二叉树节点个数二、求树的叶子结点个数三、求树的高度四、二叉树查找值为x的结点总结前言 笔者整理出了一些关于萌新在入门二叉树时容易犯的一些错误你也来试试自己会不会掉到这些坑里把~ 一、求二叉树节点个数 错误示例 int TreeSize(BTNode* root) {if(root NULL)return ;int size 0;size;TreeSize(root-left);TreeSize(root-right);return Size; }这里的错误是每当递归一次时其实是在函数栈帧中另外开辟了一个变量size每次size都是在新开辟的变量size上。并没有影响到最开始的变量size。 正确示例 int TreeSize(BTNode* root) {if(root NULL)return 0;static int size 0;size;TreeSize(root-left);TreeSize(root-right);return size; }在这个示例中size将在静态区开辟并且只会初始化一次不用担心每次递归时会将size重新初始化为0。这样size每次都可以正确的1 另外的方法就是创建一个全局变量并将整型变量的地址传入函数通过变量的地址改变变量的大小。但是这样需要注意的是需要每次要计数的时候手动将全局变量置为0。 二、求树的叶子结点个数 错误示例 int TreeLeafSize(BTNode* root) {if(root-left NULLroot-right NULL){return 1;}return TreeLeafSize(root-left)TreeLeafSize(root-right); }那么这里错在哪呢 其实这里错在缺少一个前置判断 if(root NULL) {return 0; }如果没有这个判断条件的话就会出现访问空指针的情况。 三、求树的高度 错误示例 int TreeHeight(BTNode* root)if(root NULL){return 0;}return TreeHeight(root-left)TreeHeight(root-right)?TreeHeight(root-left)1 :TreeHeight(root-right)1;这段代码逻辑上没有错但是其中有一个非常大的诟病。当函数在递归时会反复调用TreeHeight。因为之前的调用没有将结果记下来就导致每当需要上一次函数调用的结果时又再次去调用函数。 改进 int TreeHeight(BTNode* root) {if(root NULL){return 0;}int leftHeight TreeHeight(root-left);int rightHeight TreeHeigt(root-right);return leftHeightrightHeight?leftHeight1:rightHeight1 }四、二叉树查找值为x的结点 错误示例 BTNode* TreeFind(BTNode* root,BTDataType x) {if(root NULL)return NULL;if(root-data x){return root;}TreeFind(root-left,x);TreeFind(root-right,x); }这段代码逻辑看起来非常的自洽但事实上逻辑上并不自洽。 首先要问自己一个问题最下面的两次TreeFind的目的是什么 事实上最下面两次TreeFind没有任何作用因为你没有用到TreeFind的结果。 正确代码 BTNode* TreeFind(BTNode* root,BtDataType x) {if(root NULL){return NULL;}if(root-data x){return root;}BTNode* ret1 TreeFind(root-left,x);if(ret1){return ret1;}BTNode* ret2 TreeFind(root-left,x);if(ret2){return ret2;}}总结 以上就是笔者对二叉树递归里的一些易错点的记录。代码纯手打可能存在漏洞、瑕疵。如发现欢迎指正!
http://www.w-s-a.com/news/275506/

相关文章:

  • 海口省建设厅网站网站数据库怎么做同步
  • 做网站建设月收入多少app开发公司广州英诺
  • 新闻播报最新网站优化外包费用
  • wordpress分页出现404最专业的seo公司
  • 连云港网站建设电话连云港市建设局网站
  • 平面设计网站有哪些比较好drupal网站建设 北京
  • 健康资讯网站模板网页价格表
  • 2008发布asp网站宝安建网站的公司
  • 郑州市城市建设管理局网站制作公司网站 优帮云
  • 网站开发 瀑布结构普陀网站建设
  • 12380网站建设情况汇报plone vs wordpress
  • c 网站开发数据库连接与wordpress类似的都有哪些
  • 状元村建设官方网站长春做网站seo的
  • 做金融资讯网站需要哪些牌照海珠营销型网站制作
  • 学做网站需要买什么书手机网络
  • 寻找做电影网站团队合作西宁网站建设君博首选
  • 兴仁县城乡建设局网站爱站关键词查询
  • 漳州网站建设公司推荐wordpress更改主机
  • c2c商城网站建设方案英文网站注册
  • 电子商务网站的运营一般需要做哪些准备宣传片拍摄思路
  • 网站建设网页制作百度怎么做自己网站
  • 建设设计网站公司巴州建设局网站
  • 淘宝建设网站的好处韶关市网站建设招标
  • 佛山高端网站免费招聘网站建设
  • 申请网站就是做网站吗wordpress tag 优化
  • 建站系统排行榜菏泽机关建设网站
  • 网站群建设费用科技通信网站模板下载
  • 网站开发的流程是怎样的自己做自媒体在哪个网站比较好
  • 网站的html代码在哪网页线上开发制作
  • 免费商用自媒体图片网站做网站好的公司有哪些