
1,lmax和rmax对于每个结点,它的值都会不同的,不能只定义成一个。
2,root在本程序中作用不大,建议去掉。
3,lcount,rcount也应该放在递归函数中为好。
对代码调整了一些。
算法优化如下,详见注释。
#include <iostream>
using namespace std
struct tree
{
int x
tree * l
tree * r
}*T
struct tree * newnode(int data){
struct tree * NEW=new tree
NEW->x=data
NEW->l=NULL
NEW->r=NULL
return(NEW)
}
/*
static int lmax
static int rmax
static int lcount=0
static int rcount=0
struct tree * root
*/
int visible(tree * &T,int x)
{
int count =0//计数
int x1=x //临时变量:最大结点值
if(T==NULL)
return (0)//为空返回0
if(T->x >= x) //如果当前结点比以前路径最大数还大。
{
count =1//则当前结点计数为1
x1 =x //同时记录下最大的结点值。
}
count += visible(T->l,x1)//递归调左子树,同时把当前路径中的最大值传入给左子树
count += visible(T->r,x1)//递归调右子树,同时把当前路径中的最大值传入给右子树
return count//返回
}
void main(){
T=newnode(1)
T->l=newnode(2)
T->r=newnode(3)
//root=T
cout<<visible(T,T->x)<<endl
}
河南象鼎信息科技有限公司是一家APP小程序定制开发公司,主要在河南、郑州、洛阳、安阳、新乡、焦作、濮阳、许昌、漯河、商丘等地区提供APP定制开发、APP定制、手机app制作、小程序开发、安卓APP开发、APP软件开发、APP设计、手机APP定制开发、APP软件设计、原生开发等服务。APP定制开发优点:
1.它可以访问手机的所有功能(例如GPS,照相机等),并且可以实现完整的功能;
2,运行速度快,高性能,出色的用户体验;
3,支持大量图形和动画,无延迟,响应速度快;
浙里种树微信种树小程序是衢州市林业局会同浙江省林业局在“碳达峰、碳中和”背景下首创开发的林业碳汇个人碳普惠场景应用微信小程序
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)