问题: 如上二叉树,请按层遍历,每层一行,遍历结果如下: 1 2 3 4 5 6 7 8 我的思路: 在按层遍历之前,我们可以思考一下,如果我们从根结点看起,通过根节点,我们就能找到下一层中同层的所有的节点,得到下一层所有的节点,那么就能找到下下一层同层的所有的节点,以此类推,就能实现按层遍历了,但是由于树的原因,我们不可能直接按层遍历,所以得找到一个数据结构,能保存同层中不能一次性访问的节点,经过分析,符合先进先出条件,那么队列就当仁不让的站出来啦! 上面一段分析了实现按层遍历,但是题目条件是需要一层一行的输出,因此我们就需要适时的给输出加上换行。我的想法是能不能在队列中保存节点信息的同时,稍带的把节点所在层数也保存起来,只要遇到层数改变,就在输出前加上回车,不是就实现了按层输出,每层一行的要求吗?是的! 代码如下: #include<stdio.h> #include<stdlib.h> #define SQU_MAX 100 //定义二叉树节点 struct BinaryTreeNod 继续阅读 >>


周攀 17/03/07 23:31:06
最近在纠结一个问题:为什么我们在项目中的数据通信时使用JSON,JSON有什么优点呢? 下面是我的简单总结: 与XML相比,JSON更加的简洁,我们可以一眼就看出其中的内容,方便检查排错 JSON更加轻量级,不管是编写,传输,还是解析都更加高效 JSON在传输过程中采用了压缩技术,更加的节省宽带 众多的语言支持,如javascript,python,C,C++等主流语言都支持 想仔细看JSON的优点,及JSON与XML区别,详见:http://www.jb51.net/article/69598.htm 作者:IT_DREAM_ER 发表于2017/3/6 14:28:05 原文链接 阅读:2 评论:0 查看评论 继续阅读 >>


周攀 17/03/06 14:28:05
集群监控管理系统 设计说明 名称:集群监控管理系统 英文名:SystemMonitor Logo: 物理架构:C/S架构,即客户端,服务器型架构 开发语言:Python3.4,Django1.8.x 开发平台:CentOS 7.2 最新版本:v0.1 项目源码:https://github.com/dreamer2018/SystemMonitor 主要功能简述: 客户端: 获取主机的系统资源,主要包括: 内存使用率 CPU占用率 磁盘I/O 磁盘空间使用率 网络延迟 主机端口 在线用户信息 客户端收集这些信息,并将这些信息发送至服务器 服务器端: 获取到客户端数据后,进行处理计算,策略匹配,对于异常数据通过发送邮件的方式进行告警 逻辑架构: 基础逻辑架构图(2.0版): 模块-类对应图(2.0版) 网络架构: 网络拓扑架构图(2.0版): 开发接口(2.0版): 继续阅读 >>


周攀 17/02/27 23:10:38
最近在完善一个项目,由于展示界面使用的是django,但是却想解耦合,后台与展示界面并没有直接使用django的ORM,于是就使用了SQLAlemchy来做后端数据收集的数据库接口,但是网上说,SQLAlemchy的性能并不好,今天,就想着来测试一下其性能瓶瓶颈在哪儿,下面是过程记录: 查询测试 测试代码如下: def pymsql_select(): conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='root', db='test') cursor = conn.cursor() for i in range(1, 10000): sql = "select count(*) from informations_alarm;" cursor.execute(sql) print(cursor.fetchone()) def alchemy_select(): engine 继续阅读 >>


周攀 17/02/27 12:20:13
最近在写一个集群监控的项目,但是感觉全都是自己想的,没有参考其他人的设计思想方法,于是就在知网上搜了一下,发现了几个论文挺好的,但是下载下来是CAJ格式的文件,我一般都是在linux环境下工作的,发现Linux无法打开CAJ文件,而且CAJViewer只有windows版的,于是想着转成PDF,不就可以在Linux下查看了吗?在网上搜了N多方法,终于找到一个可以实现,下面分享一下: 1. 先切换到windows下,安装CAJViewer软件 2. 成功安装CAJVIewer后,打开文件 3. 点击左上角打印机按钮,或使用快捷键Ctrl+p 4. 出现以下弹窗: 5. 选择其中的发送至OneNote####,依据本机装的office版本不同而不同 6. 打开office里的 OneNote软件 7. 点击确定按钮 8. 然后就开始转化,期间可能比较慢,请耐心等待,切记保持OneNote打开状态 9. 在OneNote创建一个新分区 10. 转换完成后,就可以在OneNote里弹出如下弹窗: 11. 选择新 继续阅读 >>


周攀 17/02/26 16:23:03
今天在整理find命令的时候,突然对这两个的区别产生了疑惑,下面详细解释一下: ctime : ChangeTime 既:改变时间 mtime:ModifyTime 既:更改时间 这下出问题了,到底有啥区别?看下面例子 [zhoupan@DesktopComputer /tmp/test 16:47:48 ]$ touch 1.txt [zhoupan@DesktopComputer /tmp/test 16:47:53 ]$ stat 1.txt File: ‘1.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 80ch/2060d Inode: 135319815 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ zhoupan) Gid: ( 1000/ zhoupan) Access: 2017-02-25 16:47:53.993566804 +0 继续阅读 >>


周攀 17/02/25 17:01:08
今天,来分享一下find命令的使用方法。 find: 与其他的查找命令相比,如locate,find的查找是实时的,精确的查找命令,但其缺点是查找速度慢。 find使用方法基本可以总结为: find 查找路径 查找标准 处理动作 查找路径:你想要查找的文件路径,默认为当前路径 查找标准:查找的条件,默认为查找路径下的所有文件 处理动作:查找到文件后要做的动作,默认为显示 查找标准: -name FILE :根据文件名FILE查找 *:代表任意长度字符 ?:任意单个字符 [ ]:括号里面的字符中的任意一个 iname:不区分大小写 regex PATTERN:基于正则表达式PATTERN进行查找 user:根据文件属主查找 group:根据文件属组查找 uid:根据文件属主的uid查找 gid:根据文件属组的gid查找 nouser:查找没有属主的文件 nogroup:查找没有属组的文件 type:根据文件类型查找 f:普通文件 d:目录 c:字符文件 l:链接文件 s:套接字文件 p:管道文件 b:块设备文件 -size:根据文 继续阅读 >>


周攀 17/02/25 16:42:49
自己搭了一个IDEA的激活服务器:http://jetbrains.dreamchasinger.cn 如服务不可用,或涉及侵权或违法,请发邮件至:zhoupans_mail@163.com 作者:IT_DREAM_ER 发表于2017/2/20 18:41:17 原文链接 阅读:1 评论:0 查看评论 继续阅读 >>


周攀 17/02/20 18:41:17
用vim快两年了,但是直到最近才真正将vim的全部用法看完,并自己认真实践了一下,下面是我总结出的vim用法,与君分享。 Vim常用功能总结 打开文件 1) vim filename :打开filename文件。 2) vim + # filename : #号代表任意非负整数,打开文件filename,并跳至#行。 3) vim + filename :打开文件filename,并跳至最后一行。 4) vim + /pattern :打开文件并定位至第一次被pattern匹配的行。 编辑文件、 vim模式 编辑模式 输入模式 末行模式 vim模式转换 编辑 –> 输入 i: 在当前光标前,转为输入模式。 a: 在当前光标所在字符后,转换为输入模式。 o: 在当前光标下一行,新建一行,并转为输入模式。 I: 在当前光标所在行首,并转为输入模式。 A: 在当前所在行行尾,转为输入模式。 O:在当前所在行的上一行,新建一行,并转为输入模式。 输入–>编辑 ESC键 编辑 –>末行 继续阅读 >>


周攀 17/02/20 17:22:57
面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序、二叉树遍历等等。 在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。 本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。 1.String/Array/Matrix 在Java中,String是一个包含char数组和其它字段、方法的类。如果没有IDE自动完成代码,下面这个方法大家应该记住: toCharArray() //get char array of a String Arrays.sort() //sort an array Arrays.toString(char[] a) //convert to string charAt(int x) //get a char at the specific index length() //string length lengt 继续阅读 >>


周攀 17/02/15 09:30:43