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

特效网站甘肃企业网络推广软件

特效网站,甘肃企业网络推广软件,静态网站可以做哪些,中国企业信用信息查询系统目录 1.题目 代码模板 2.分析 分类讨论各种情况 大概的框架 关键部分(继续递归)的详解 递归调用展开图 3.测试结果 其他写法 4.结论 5.注意事项 不推荐的写法 1.题目 查找值为x的节点并返回节点的地址 代码模板 typedef int BTDataType; typedef struct BinaryT…

目录

1.题目

代码模板

2.分析

分类讨论各种情况

大概的框架

关键部分(继续递归)的详解

递归调用展开图

3.测试结果

其他写法

4.结论

5.注意事项

不推荐的写法


1.题目

查找值为x的节点并返回节点的地址

代码模板

typedef int BTDataType;
typedef struct BinaryTreeNode
{BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right;
}BTNode;BTNode* BinaryTreeFind(BTNode* root, BTDataType x)
{}

2.分析

分类讨论各种情况

1.节点为NULL,返回NULL

2.节点值为x,找到了,返回其地址

3.节点值不为,没找到,继续递归查找

大概的框架

BTNode* BinaryTreeFind(BTNode* root, BTDataType x)
{if (root == NULL)return NULL;if (root->data == x)return root;//继续递归//......
}

关键部分(继续递归)的详解

根节点查不到,分别去查左右子树,若查到则返回地址,查不到返回NULL

双路递归思想

	//继续递归BTNode* lret = BinaryTreeFind(root->left, x);if (lret)return lret;BTNode* rret = BinaryTreeFind(root->right, x);if (rret)return rret;return NULL;

递归调用展开图

以下面这张图为例子,比如查找5

(注:递归调用展开图较大,建议查看大图)

注:CSDN会压缩图片画质,无损bmp图片链接(大小 36.5M) 见https://pan.baidu.com/s/1VT9lg2xdofExMCjS8oIOzQ?pwd=xs7n)

3.测试结果

main.c写入以下代码

#include "Tree.h"
int main()
{BTNode* root = CreateTree();BTDataType x = 2;printf("x=5,address=%p\n", BinaryTreeFind(root, 5));printf("x=0,address=%p\n", BinaryTreeFind(root, 0));return 0;
}

打印的地址和监视窗口中查看到的地址一样

其他写法

BTNode* BinaryTreeFind(BTNode* root, BTDataType x)
{if (root == NULL)return NULL;if (root->data == x)return root;BTNode* lret = BinaryTreeFind(root->left, x);if (lret)return lret;return  BinaryTreeFind(root->right, x);
}

4.结论

由分析可知,root->data若等于x则会层层返回至整个树的根节点

5.注意事项

不推荐的写法

BTNode* BinaryTreeFind(BTNode* root, BTDataType x)
{if (root == NULL)return NULL;if (root->data == x)return root;if (BinaryTreeFind(root->left, x))return BinaryTreeFind(root->left, x);if (BinaryTreeFind(root->right, x))return BinaryTreeFind(root->right, x);return NULL;
}

BinaryTreeFind(root->left, x)和BinaryTreeFind(root->right, x)各被调用两次,找到x是第一次,返回x的值是第二次,时间复杂度较高,尤其当二叉树的节点过多,二叉树的结构复杂时,执行效率低下,最好保存返回值免得重复调用

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

相关文章:

  • 网站建设上免费主题网站
  • 工程信息网站排名家居网站建设
  • 网站上怎么做福彩卖家做电商图的设计网站
  • 网站建设合同 域名毕业设计代做网站jsp
  • 网站策划主题郑州企业网站seo
  • 有什么网站是python做的科学规划网页的做法是()
  • 珠海门户网站建设哪家好一个人开发一个网站需要多久
  • 汕头网站建设报价女子医院网站优化公司
  • php+mysql网站开发教程软件开发平台是什么
  • 手机网站要求.天津网站建设
  • 天津网站建设平台腾讯网站认证
  • 邯郸做移动网站多少钱wordpress删除dux头部标签
  • 柳江企业网站建设价格网站上图怎么用ps做
  • 自己做的网站和淘宝店的区别小甲虫抖音代运营
  • 网站持有者和备案企业家装设计软件app免费
  • 网站建设需要什么材料网络营销是团队还是个人
  • 向客户介绍网站建设的话本wordpress 评论弹幕
  • 网站设计方案模板郑州制作网站ihanshi
  • 网站建设的swot分析东莞网站公司哪家好
  • 在线教育网站建设公司网站内容的特点
  • 网站黑白代码设计分享网站
  • 青岛网站建设公司电话西宁网站建设服务公司
  • 网站查看网站建设相关的工作
  • 化妆品网站建设需求问卷调查网站提交入口链接
  • 重庆通信管理局网站中国好公司排名
  • 微信导航网站怎么做信息网站推广
  • 广州巨腾建网站公司昆明双鼎网站制作
  • 石家庄企业制作网站怎么做网站多少钱
  • 从化专业做网站南昌专门做网站的公司
  • destoon做众筹网站id自动导入 wordpress