hdu 3999The order of a Tree

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3999

本题为简单二叉排序树,先按排序树创建树,然后先序遍历二叉树,输出的时候最后一个数字后面没有空格。

数组实现:

 

#include<stdio.h>
#include<string.h>
#define N 100005
int tree[N],left[N],right[N],a[N],num,flg;//tree数组用来保存树节点的值,left,right数组用来保存结点的左右子树,
void insert(int index,int x)
{if( x <= tree[index] )//当根结点比x的值大 的时候。{if(left[index] == -1)//当根结点左子树为空的时候。left[index] = flg;elseinsert(left[index],x);//左子树不为空时继续遍历左子树}else{if(right[index] == -1)//当右子树为空时right[index] = flg;elseinsert(right[index],x);//当右子树不为空的时候}
}
void PreOrderTraverse(int index)//先序遍历二叉排序树
{a[num++] = tree[index];if(left[index] != -1)PreOrderTraverse(left[index]);if(right[index] != -1)PreOrderTraverse(right[index]);
}
int main()
{int n,i,x,root;while(~scanf("%d",&n)){//初始化树的所有结点都为空。memset(left,-1,sizeof(left));memset(right,-1,sizeof(right));root = -1;flg = 0;for(i = 0; i< n; i++){scanf("%d",&x);if(root == -1)tree[++root] = x;else{tree[++flg] = x;insert(root,x);}}num = 0;PreOrderTraverse(root);printf("%d",a[0]);for(i = 1; i <= n -1; i++)printf(" %d",a[i]);printf("\n");}return 0;
}


 

动态创建二叉树排序树

 

#include<stdio.h>
#include<stdlib.h>
struct node
{int data;struct node *left;struct node *right;
};
int b[100005],num,n;
void delete_tree(node *t)
{if(t->left)delete_tree(t->left);if(t->right)delete_tree(t->left);free(t);
}
node* insert(node *t,int x)
{if(t){if(x < t->data)t->left = insert(t->left,x);elset->right = insert(t->right,x);}else{t = (node*)malloc(sizeof(node));t->data = x;t->left = t->right = NULL;}return t;
}
void PreOrderTraverse(node *t)
{if(t == NULL)return ;b[num++] = t->data;PreOrderTraverse(t->left);PreOrderTraverse(t->right);free(t);
}
node *create(node *t)
{int i,x;for(i = 0; i < n; i++){scanf("%d",&x);t = insert(t,x);}return t;
}
int main()
{int i;node *root;while(~scanf("%d",&n)){root = NULL;root = create(root);num = 0;PreOrderTraverse(root);printf("%d",b[0]);for(i = 1; i < n; i++)printf(" %d",b[i]);printf("\n");}return 0;
}


 

 

转载于:https://www.cnblogs.com/LUO257316/archive/2012/08/30/3220835.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【程序员薪资】2021年04月新鲜出炉,看看你拖后腿了吗?

程序员一直都是一个备受人们关注的群体。据IDC统计&#xff0c;全球约有1850万名程序员&#xff08;数据还在持续增长&#xff09;&#xff0c;中国占10%左右。随着近年全国互联网创业热潮的兴起&#xff0c;“互联网”、“云计算”以及“智能硬件”等领域发展迅速&#xff0c;…

CICC科普栏目|神经网络浅讲:从神经元到深度学习

图1 人脑神经网络来源&#xff1a; 计算机的潜意识摘要&#xff1a;神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。学习神经网络不仅可以让你掌握一门强大的…

linux安装Redis(超详细,只要三分钟,每一步命令都有命令截图及运行截图)

Redis redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希类型&#xff09;。这些数据类型都支持push/pop、add/remove及取…

鬼才!用Python计算圆周率 π

目录 一、圆周率的历史发展 1、中国 2、印度 3、欧洲 二、用python计算圆周率 A货&#xff1a;什么&#xff01;你不会背圆周率&#xff08;鄙夷的眼神&#xff09; 3.1415926535 8979323846 26433... 桥哥&#xff1a;我会算呀 &#xff01;&#xff01;&#xff01; 一…

一个简单WCF项目的建立 by wsz

由于搬砖的需要&#xff0c;不得不学一点与WCF有关的东西。具体是因为前几周在64位环境下写的一个dll不能被集成到合作伙伴的32位工程中&#xff0c;但是要修改文件实在是划不来&#xff0c;一个压缩后600M的文件搬来搬去的也是让人蛋碎。因此想到了WCF。这样只要提供一个servi…

大数据常见问题:数据倾斜

offer收割系列介绍&#xff1a; 1、分享桥哥本人或小伙伴在面试大厂时遇到的真题&#xff0c;并给出参考答案&#xff01;&#xff01;如果能帮到大家&#xff0c;点赞、收藏、评论是对我最大的支持&#xff01;&#xff01; 2、涉及岗位&#xff1a;主要为大数据开发、数据仓…

一图看懂新一代人工智能知识体系大全

来源&#xff1a;财经头条摘要&#xff1a;人工智能的发展离不开基础支持层和技术层&#xff0c;基础支持层包括大数据、计算力和算法&#xff1b;技术层包括计算机视觉、语音识别和自然语言处理。人工智能的技术本质是什么&#xff0c;本文会详细分析。人工智能的发展离不开基…

Redis是单线程为什么还那么快?

Redis为什么还那么快 基于内存   Redis完全基于内存&#xff0c;绝大部分请求是纯粹的内存操作&#xff0c;Redis将数据存储在内存中&#xff0c;读写数据的时候不会受到硬盘I/O速度的限制&#xff08;内存速度为什么比硬盘快&#xff1f;&#xff09;&#xff0c;类似于Hash…

iPhone是否越狱的检测方法

今天项目中要用到检查iPhone是否越狱的方法。 Umeng统计的Mobclick.h里面已经包含了越狱检测的代码&#xff0c;可以直接使用 /*方法名:* isJailbroken*介绍:* 类方法&#xff0c;判断设备是否越狱&#xff0c;判断方法根据 apt和Cydia.app的path来判断*参数说明…

阿里、字节offer收割系列:数据仓库岗(面试真题,建议收藏)

【offer收割系列介绍】 1、分享桥哥本人或小伙伴在面试大厂时遇到的真题&#xff0c;并给出参考答案&#xff01;&#xff01; 2、涉及岗位&#xff1a;主要为大数据开发、数据仓库&#xff08;桥哥干过的&#xff09;&#xff0c;其它岗位也可参考 3、涵盖技术&#xff1a;mys…

MIT新开发的 AI 模型有望改进恶性脑瘤治疗

来源&#xff1a;人工智能和大数据美国研究人员新近开发出一种人工智能模型&#xff0c;能够为胶质母细胞瘤患者设计出最小剂量给药方案&#xff0c;在缩小肿瘤的同时减少药物带来的毒副作用&#xff0c;改进患者生活质量。胶质母细胞瘤是一种常见的恶性脑瘤&#xff0c;常见疗…

git远程分支修改名字

本地分支重命名(还没有推送到远程) git branch -m oldName newName远程分支重命名 重命名远程分支对应的本地分支 git branch -m oldName newName删除远程分支 git push --delete origin oldName上传新命名的本地分支 git push origin newName把修改后的本地分支与远程分支关联…

30款顶级CSS工具及应用-CSDN.NET

30款顶级CSS工具及应用-CSDN.NET. 第3个CSS3PS尤其令惊艳&#xff01;&#xff01;&#xff01;非常强大的效果&#xff0c;无需安装&#xff0c;直接photoshop弄好&#xff0c;文件——脚本——选择pscss3——再用chrome打开即可&#xff01; 转载于:https://www.cnblogs.com…

建议收藏丨大数据集群常用监控命令(内存、磁盘、CPU、网络)

大家好&#xff0c;我是明月十四桥&#xff01;&#xff01; 擅长领域&#xff1a;python黑科技、大数据后端研发、数据仓库 今日重点&#xff1a; ① 学会查看linux各种状态&#xff0c;包括&#xff1a;网络IO、磁盘、CPU、内存等&#xff1b; ② 学会理解命令所代表的含义&a…

中科院王飞跃:新的智能全球化将要来临,人工智能标准化为时尚早

中国科学院自动化研究所复杂系统管理与控制国家重点实验室主任王飞跃来源&#xff1a;财经网摘要&#xff1a;8月11日&#xff0c;中国科学院自动化研究所复杂系统管理与控制国家重点实验室主任王飞跃在由厚益控股和《财经》杂志联合主办主题为“共享全球智慧 引领未来科技”的…

Linux设置gopath

vim /etc/profile #编辑gopath&#xff0c;写入如下export GOROOT/usr/local/go #设置为go安装的路径&#xff0c;有些安装包会自动设置默认的goroot export GOPATH$HOME/gocode #默认安装包的路径 可以加自己想要的路径&#xff0c;用:分割 export PATH$PATH:$GOROOT/bi…

建议收藏丨sql行转列的一千种写法!!

大家好&#xff0c;我是明月十四桥&#xff01;&#xff01; 爱好特长&#xff1a; 1、爱好和特长有很多&#xff0c;擅长word、excel、ppt、wind等软件的安装与卸载&#xff1b; 2、精通PE、PS、PB、DCF、PEG等单词的拼写&#xff1b; 3、熟悉Windows、Linux、Mac、Android、I…

ORA-32004问题解决

问题描述&#xff1a; JSSSTR> startup force nomount;ORA-32004: obsolete and/or deprecated parameter(s) specifiedORACLE 例程已经启动 解决方法&#xff1a; 通过查看alter.log,并删除相应的值 上面提到的alert log文件位于%ORACLE_BASE%\admin\%ORACLE_SID%\bdump里。…

深度学习并非万能:你需要避免这三个坑

作者 | George Seif编译 | 专知整理 | Mandy, Sanglei摘要&#xff1a;本文是人工智能专家George Seif撰写的博文&#xff0c;介绍了在当前深度学习比较火热的情景下需要避免的三个坑。Tweaking Neural Net ParametersThree reasons that you should NOT use deep learning深度…

Redis配置文件常用配置消息解说--版本5.0.9

单位 配置文件中的uint单位对大小写不敏感 引用包 INCLUDES redis中也可以引用其他的配置文件。需要注意的是&#xff0c;在主从复制机制中&#xff0c;主机或哨兵的命令“CONFIG REWRITE”不会重写“include”选项。Redis总是使用最后处理的行作为配置指令的值&#xff0c;…