遍历

Java中二叉树的层序遍历

自古美人都是妖i 提交于 2020-03-17 11:08:49
二叉树除了前序遍历、中序遍历、后序遍历之外,还有一种遍历方式,那就是层序遍历,它是将二叉树按照层次进行遍历的一种方法。 首先,需要定义节点类,代码如下: public class TreeNode { int value ; TreeNode left ; TreeNode right ; public TreeNode ( ) { value = 0 ; left = right = null ; } public TreeNode ( int value ) { this . value = value ; left = right = null ; } } 层序遍历 对于代码的实现,我们可以利用队列来实现。 public void leverOrder ( TreeNode root ) { Queue < TreeNode > queue = new LinkedList < > ( ) ; if ( root != null ) { queue . offer ( root ) ; } while ( ! queue . isEmpty ( ) ) { //获取队头元素 TreeNode topNode = queue . poll ( ) ; System . out . print ( topNode . value + " " ) ; //入队孩子节点 if (

高级变量类型

那年仲夏 提交于 2020-03-17 06:03:27
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 ( int ) 浮点型( float ) 布尔型( bool ) 真 True 非 0 数 —— 非零即真 假 False 0 复数型 ( complex ) 主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题 非数字型 字符串 列表 元组 字典 在 Python 中,所有 非数字型变量 都支持以下特点: 都是一个 序列 sequence ,也可以理解为 容器 取值 [] 遍历 for in 计算长度 、 最大/最小值 、 比较 、 删除 链接 + 和 重复 * 切片 01. 列表 1.1 列表的定义 List (列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组 专门用于存储 一串 信息 列表用 [] 定义, 数据 之间使用 , 分隔 列表的 索引 从 0 开始 索引 就是数据在 列表 中的位置编号, 索引 又可以被称为 下标 注意:从列表中取值时,如果 超出索引范围 ,程序会报错 name_list = [ "zhangsan" , "lisi" , "wangwu" ] 1.2 列表常用操作 在 ipython3 中定义一个 列表 ,例如: name_list = [] 输入 name

第四章 使用jQuery操作DOM

让人想犯罪 __ 提交于 2020-03-17 03:56:21
第四章 使用jQuery操作DOM 一.DOM操作 在jQuery中的DOM操作主要可分为样式操作、文本和value属性值操作、节点操作; 节点操作又包含属性操作、节点遍历和CSS-DOM操作。 其中最核心的部分是节点操作和节点遍历。 二.样式操作 1.设置和获取样式 设置样式的语法: $(selector).css(name,value);//设置单个属性值 $(selector).css({name:value,…..nameN:valueN});//设置多个属性值 获取样式的语法:$(selector).css(name);//获取属性name的值 2.追加和移除样式 增加样式: $(selector).addClass(className);//增加单个样式 $(selector).addClass(className1,className2…..);//增加多个样式 移除样式: $(selector).removeClass(className);//移除单个样式 $(selector).removeClass(className1,className2….);//移除多个样式 3.切换样式 语法: $(selector).toggleClass(className);//切换样式 其中,参数className为样式的名称

多数元素

核能气质少年 提交于 2020-03-17 03:46:54
hashmap 一开始想用数组下标,思考不周,没想到数组内有负数, class Solution { public int majorityElement(int[] nums) { int n=nums.length; HashMap<Integer,Integer> aa=new HashMap<>(); for(int i=0;i<n;i++){ int count = aa.getOrDefault(nums[i], 0); aa.put(nums[i], count + 1);//hashmap的思想,更改value if(aa.get(nums[i])>n/2) return nums[i]; } return 0; } } en 排序 class Solution { public int majorityElement(int[] nums) { Arrays.sort(nums); return nums[(nums.length-1)/2]; } } 分治 思路 如果数 a 是数组 nums 的众数,如果我们将 nums 分成两部分,那么 a 必定是至少一部分的众数。 我们可以使用反证法来证明这个结论。假设 a 既不是左半部分的众数,也不是右半部分的众数,那么 a 出现的次数少于 l / 2 + r / 2 次,其中 l 和 r 分别是左半部分和右半部分的长度

软件工程作业二

一世执手 提交于 2020-03-16 21:03:14
码云项目地址 https://gitee.com/holmec/PersonalProject-Java PSP表格 PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟) Planning 计划 20 15 · Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 20 15 Development 开发 350 390 · Analysis 需求分析 (包括学习新技术) 40 35 · Design Spec 生成设计文档 20 15 · Design Review 设计复审 20 15 · Coding Standard 代码规范 20 10 · Design 具体设计 30 50 · Coding 具体编码 120 180 · Code Review 代码复审 40 15 · Test 测试(自我测试,修改代码,提交修改) 60 70 Reporting 报告 90 90 · 测试报告 40 40 · 计算工作量 20 20 · 并提出过程改进计划 30 30 解题思路描述 刚看到题目的时候先分析了一下这道题的需求: 统计文本的字符数 统计合法的单词数 统计合法行数 统计最多的10个单词及其词频 可见要统计首先得先从文件中获取数据,因为考虑到需要统计合法行数,所以我是想按行读取数据,而不是全部读取再来判断换行符之类的

数据结构之二叉树

限于喜欢 提交于 2020-03-16 14:57:13
某厂面试归来,发现自己落伍了!>>> 概念: 二叉树是一种特殊的树,其每个节点最多只能有两个子节点。其左子树和右子树是有顺序的,顺序不能颠倒。即使只有一个节点,也要区分左右子树。 斜树: 二叉树中每个节点只有相同方向,全部节点只有左子节点的称为左斜树,只有右子节点的称为右斜树。 满二叉树: 所有的分支节点都具有左子树和右子树,所有的叶子节点都在同一层上,满二叉树追求树的平衡。 满二叉树具备一下特点: 叶子节点只能出现在最下面一层。 非叶子节点的度数一定是2。 在同样深度的二叉树中,满二叉树的节点个数最多,叶子树最多。 完全二叉树: 对一棵具备n个节点的二叉树,对每个节点按照层序编号。如果编号为i的节点,与同样深度的满二叉树编号为i的节点在二叉树的同样位置,那么这棵二叉树就是完全二叉树。满二叉树一定是完全二叉树,完全二叉树不一定树满二叉树。 完全二叉树具备以下性质: 叶子节点只能出现在最下一层。 最下层的叶子节点一定出现在左部的连续位置。 倒数第二层的叶子节点一定出现在右部的连续位置。 同样节点数的二叉树,完全二叉树的深度最小。 性质: 一般二叉树的性质: 在非空二叉树的i层上,最多有2^(i-1)个节点。 在深度为k的二叉树上,最多有2^k-1个节点。 对于一棵非空的二叉树,如果叶子节点的个数为n0,度数为2的节点的个数为n2,则有n0=n2+1。 在一棵二叉树中,除了叶子节点

网站信息泄漏攻击——越权操作、目录遍历、源码暴露

大兔子大兔子 提交于 2020-03-15 22:52:51
服务器除了以上提到的那些大名鼎鼎的漏洞和臭名昭著的攻击以外,其实还有很多其他的漏洞,往往也很容易被忽视,在这个小节也稍微介绍几种。 越权操作漏洞 如果你的系统是有登录控制的,那就要格外小心了,因为很有可能你的系统越权操作漏洞,越权操作漏洞可以简单的总结为 「A 用户能看到或者操作 B 用户的隐私内容」,如果你的系统中还有权限控制就更加需要小心了。所以每一个请求都需要做 userid 的判断 以下是一段有漏洞的后端示意代码: 1234567 // ctx 为请求的 context 上下文let msgId = ctx.params.msgId;mysql.query( 'SELECT * FROM msg_table WHERE msg_id = ?', [msgId]); 以上代码是任何人都可以查询到任何用户的消息,只要有 msg_id 就可以,这就是比较典型的越权漏洞,需要如下这么改进一下: 12345678 // ctx 为请求的 context 上下文let msgId = ctx.params.msgId;let userId = ctx.session.userId; // 从会话中取出当前登陆的 userIdmysql.query( 'SELECT * FROM msg_table WHERE msg_id = ? AND user_id = ?', [msgId,

由前序遍历和中序遍历重建二叉树

牧云@^-^@ 提交于 2020-03-15 16:50:59
编程之美3.9:给出前序遍历和中序遍历,重新创建二叉树,后序遍历输出。代码如下: View Code 1 #include <iostream> 2 #include <cassert> 3 4 using namespace std; 5 6 struct Node 7 { 8 Node* m_lChild; 9 Node* m_rChild; 10 char data; 11 }; 12 13 void AfterTra(Node* pRoot) 14 { 15 if (!pRoot) 16 { 17 return; 18 } 19 AfterTra(pRoot->m_lChild); 20 AfterTra(pRoot->m_rChild); 21 cout<<pRoot->data<<" "; 22 } 23 24 //删除树的操作 25 void DestroyTree(Node*& pRoot) 26 { 27 if (!pRoot) 28 { 29 return; 30 } 31 DestroyTree(pRoot->m_lChild); 32 DestroyTree(pRoot->m_rChild); 33 delete pRoot; 34 } 35 36 //计算树中的节点个数 37 int TreeSize(Node* pRoot) 38 { 39 if (

JavaScript基础

时间秒杀一切 提交于 2020-03-15 09:14:48
JavaScript基础 第1天 数据类型 简单数据类型 Number,String,Boolean,Undefined,Null 复杂数据类型 Object 第4天 数组 第5天 对象 什么是对象? 在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。 对象是由属性和方法组成的。 属性:事物的特征,在对象中用属性来表示(常用名词) 方法:事物的行为,在对象中用方法来表示(常用动词) 对象中的键和值 键:相当于属性名 值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等) 遍历对象 for (变量 in 对象名字) { // 在此执行代码 } for (var k in obj) { console.log(k); // 这里的 k 是属性名 console.log(obj[k]); // 这里的 obj[k] 是属性值 } 第6天 JavaScript内置对象:Math、Date、Array、String等 数组对象 字符串对象 字符串通过基本包装类型可以调用部分方法来操作字符串 以下是返回指定字符的位置的方法: indexOf(要查找的字符,开始的位置) 返回指定内容在元字符串中的位置,如果找不到就返回-1, 开始的位置是index索引号 案例:查找字符串

页面元素定位方法---表格定位

拟墨画扇 提交于 2020-03-15 02:56:33
1. 遍历表格所有单元格 被测试网页 table1.html 所有单元格 1 <html> 2 <body> 3 <table width="400" border="1" id="table"> 4 <tr> 5 <td align="left">图书购买清单</th> 6 <td align="right">一月</th> 7 <td align="right">二月</th> 8 </tr> 9 <tr> 10 <td align="left">python</td> 11 <td align="right">180元</td> 12 <td align="right">200元</td> 13 </tr> 14 <tr> 15 <td align="left">Oracle</td> 16 <td align="right">290元</td> 17 <td align="right">150元</td> 18 </tr> 19 <tr> 20 <td align="left">Selenium自动化测试</td> 21 <td align="right">300元</td> 22 <td align="right">260元</td> 23 </tr> 24 <tr> 25 <td align="left">LoadRunner</td> 26 <td align=