树
2014-05-07 07:17
411 查看
#include<stdio.h>
#include<stdlib.h>
struct ele
{
int value;
ele* left;
ele* right;
};
void build(ele *&p)
{
int n;
scanf("%d",&n);
if(n==0)
p=NULL;
else
{
p=(ele*)malloc(sizeof(ele));
p->value=n;
build(p->left);
build(p->right);
}
}
void search(ele*&p)
{
if(p==NULL)
return;
else
{
printf("%d
",p->value);
search(p->left);
search(p->right);
}
}
int sum(ele *&p)
{
if(p==NULL)
return 0;
else
{
int m,n;
m=sum(p->left);
n=sum(p->right);
if(m>n)
return m+1;
return n+1;
}
}
int countsum(ele*&p)
{
if(p==NULL)
return 0;
else
return countsum(p->left)+countsum(p->right)+1;
}
int main()
{
ele *p;
build(p);
search(p);
printf("%d\n",sum(p));
printf("%d\n",countsum(p));
return 0;
}
#include<stdlib.h>
struct ele
{
int value;
ele* left;
ele* right;
};
void build(ele *&p)
{
int n;
scanf("%d",&n);
if(n==0)
p=NULL;
else
{
p=(ele*)malloc(sizeof(ele));
p->value=n;
build(p->left);
build(p->right);
}
}
void search(ele*&p)
{
if(p==NULL)
return;
else
{
printf("%d
",p->value);
search(p->left);
search(p->right);
}
}
int sum(ele *&p)
{
if(p==NULL)
return 0;
else
{
int m,n;
m=sum(p->left);
n=sum(p->right);
if(m>n)
return m+1;
return n+1;
}
}
int countsum(ele*&p)
{
if(p==NULL)
return 0;
else
return countsum(p->left)+countsum(p->right)+1;
}
int main()
{
ele *p;
build(p);
search(p);
printf("%d\n",sum(p));
printf("%d\n",countsum(p));
return 0;
}
相关文章推荐
- OSGI容器与插件
- CocoStudio开发之背景音乐播放两秒就没声音问题
- 【SSH2(实践篇)】--Struts2文件上传下载实例
- mysql应该监控的变量
- 字节数组转化为16进制字符串
- 5656777
- android custom_title
- kafka 源码 导入eclipse中
- matlab的一些命令
- hdu_4707
- hdu_4707
- 498989
- JAXB玩转命名空间
- .NET:不显示窗口的应用程序框架
- 哈佛大学:探索地外文明的先行者
- Numerical Analysis---Hermite Interpolation
- 条形码扫描枪数据读取的问题
- 「cocos2d-x」瓦片地图学习(1)(2)
- 虚拟机网卡桥接到无线网卡上 无法上网解决方法
- memcached命令