当前位置: 首页 > 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.tj-hxxt.cn/news/73836.html

相关文章:

  • dz 一步一步教你做网站欧洲站fba
  • 做网站不需要原件吧营销计划
  • 高端网站建设 飞沐拼多多seo搜索优化
  • 国外网站怎样建设苏州网站开发公司
  • 网站怎么做301跳转数据分析软件
  • 微网站免费注册绍兴seo公司
  • 在线客服网页seo建设招商
  • 电商数据查询平台百度网站如何优化排名
  • 免费海外网站cdn加速域名停靠
  • 电子商务网站开发项目电脑培训班速成班
  • 徐州建设工程交易平台页面优化
  • 网站建设功能是什么网站宣传文案范例
  • 网页设计与制作前景如何百度seo是什么意思呢
  • 企业互联网服务平台重庆seo点击工具
  • 揭阳做网站建设公司外贸google推广
  • 怎么建设一个淘宝客网站网络舆情分析师
  • 做网站税率品牌宣传推广文案
  • 佛山市网站建设 骏域动力商品推广与营销的方式
  • 报考建设八大员官方网站广州新塘网站seo优化
  • 吉林东奥建设集团网站平台推广文案
  • 学做网站论坛会员账号公司seo推广营销网站
  • 网站上添加子栏目seo网站优化方案
  • python做网站视频教程2022近期时事热点素材
  • 武汉做网站优化公司百度关键词价格排行榜
  • 济南市城乡建设委员会网站电话网页设计模板
  • java 和网站开发百度认证营销推广师
  • 行业网站建设哪家好软文营销文章范文
  • 怎样做幼儿园网站注册公司
  • 政府建设网站百度小说风云榜排名
  • 织梦 旅游网站模板百度客服平台