遍历

PTA 二叉树的层次遍历

送分小仙女□ 提交于 2019-12-05 15:10:20
6-6 二叉树的层次遍历 (6 分) 本题要求实现给定的二叉树的层次遍历。 函数接口定义: void Levelorder(BiTree T); T是二叉树树根指针,Levelorder函数输出给定二叉树的层次遍历序列,格式为一个空格跟着一个字符。 其中BinTree结构定义如下: typedef char ElemType; typedef struct BiTNode { ElemType data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree; 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> typedef char ElemType; typedef struct BiTNode { ElemType data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree; BiTree Create();/* 细节在此不表 */ void Levelorder(BiTree T); int main() { BiTree T = Create(); printf("Levelorder:"); Levelorder(T); printf("\n"); return 0; } /* 你的代码将被嵌在这里 */ 输出样例

jQuery遍历

社会主义新天地 提交于 2019-12-05 14:47:42
什么是遍历? jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。 这些 jQuery 方法很有用,它们用于遍历 DOM 树: <body>   <div>     <ul>       <li><span></span></li>     </ul>   </div> </body> parent() 方法返回被选元素的直接父元素 $ ( " span " ) . parent ( ) ; //返回元素<li> parents() 方法返回被选元素的所有祖先元素,直到文档的根元素 (<html>) $ ( " span " ) . parents ( ) ; //返回一个对象,0:<li>,1:<ui>,2:<div>... $ ( " span " ) . parents ("#kk" ) ; //添加参数意为所有祖先元素中id=kk的元素 parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素 $ ( " span " ) . parentsUntil ( " div " ) ; //返回<li>和<ul>,注意不包含<div> $ ( " span " ) . parents Until ( " div " ,"#kk" ) ; /

Java基础__Java中集合类

浪子不回头ぞ 提交于 2019-12-05 14:21:21
  ArrayList:有序、可重复、线程不安全、内部使用数组进行存储   LinkedList:有序、可重复、线程不安全、内部使用引用进行存储【可以很方便的进行插入、删除数据】   Vector:有序、可重复、线程安全   HastSet:无序、不可重复(自动去重)      TreeSet存放数据是有序的     HashSet存放数据是无序的 一、ArrayList集合类的简单创建和使用   创建一个集合对象   ArrayList arr = new ArrayList();   往集合中添加数据【arr.add(Object)】 arr.add("小明");   通过索引从集合中取得对象【arr.get(Index)】   arr.get(1) package com.Gary.arryaylist; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args){ //集合对象 ArrayList arr = new ArrayList(); //往集合中添加对象 arr.add("小明"); arr.add("小红"); arr.add("小梁"); //使用索引添加对象 System.out.println(arr.get(0)); } }

JS几种数组遍历方式总结

耗尽温柔 提交于 2019-12-05 14:13:22
JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代码如下: for(j = 0; j < arr.length; j++) { } 简要说明: 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间 第二种:优化版for循环 代码如下: for(j = 0,len=arr.length; j < len; j++) { } 简要说明: 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。 这种方法基本上是所有循环遍历方法中性能最高的一种 第三种:弱化版for循环 代码如下: arr.forEach(function(e){ }); 第五种:foreach变种 代码如下: Array.prototype.forEach.call(arr,function(el){ }); 简要说明: 由于foreach是Array型自带的,对于一些非这种类型的,无法直接使用(如NodeList),所以才有了这个变种,使用这个变种可以让类似的数组拥有foreach功能。 实际性能要比普通foreach弱 第六种:forin循环 代码如下: for(j in arr) { } 简要说明: 这个循环很多人爱用

实例小结:Python操作列表常用方法「创建、遍历、统计、切片等」

為{幸葍}努か 提交于 2019-12-05 13:53:20
前言: 今天为大家带来的内容是实例小结:Python操作列表常用方法【创建、遍历、统计、切片等】喜欢的话记得点赞转发收藏关注不迷路哦!!! 提示: 这篇文章主要介绍了Python操作列表常用方法,结合实例形式总结分析了Python列表常见的创建、遍历、统计、切片等操作技巧与相关注意事项,需要的朋友可以参考下。 本文实例讲述了Python操作列表常用方法。分享给大家供大家参考,具体如下: 使用for循环,遍历整个列表 依次从列表中取出元素,存放到names变量中,并拼接打印 实例小结:Python操作列表常用方法「创建、遍历、统计、切片等」 运行结果: 实例小结:Python操作列表常用方法「创建、遍历、统计、切片等」 缩进问题 忘记缩进 忘记缩进额外的代码行 不必要的缩进 循环后不必要的缩进 遗漏了冒号 创建数值列表 使用函数range() 实例小结:Python操作列表常用方法「创建、遍历、统计、切片等」 运行结果: ['a1', 'b1', 'c1'] 对数字列表进行简单的统计: 实例小结:Python操作列表常用方法「创建、遍历、统计、切片等」 运行结果: 实例小结:Python操作列表常用方法「创建、遍历、统计、切片等」 列表解析: 实例小结:Python操作列表常用方法「创建、遍历、统计、切片等」 运行结果: 实例小结:Python操作列表常用方法「创建、遍历、统计

HashMap,LinkedHashMap,TreeMap的区别

余生长醉 提交于 2019-12-05 12:40:00
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。 Hashtable与 HashMap类似,它继承自Dictionary类,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了 Hashtable在写入时会比较慢。 LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.也可以在构造时用带参数,按照应用次数排序。在遍历的时候会比HashMap慢,不过有种情况例外,当HashMap容量很大,实际数据较少时,遍历起来可能会比LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关

as

自闭症网瘾萝莉.ら 提交于 2019-12-05 11:59:14
学号20182304 2019-2020-1 《数据结构与面向对象程序设计》第九周学习总结 教材学习内容总结 非线性数据结构——————树,元素组织为层次结构 树的基本概念 概念:树由一组结点和一组边构成,通过结点来存储元素,边表示节点之间的连接 树的相关术语: 根节点:树中唯一没有父节点的节点,位于树的顶层 内部结点:一颗树中既不是根结点也不是叶结点的称为内部结点 叶子:没有孩子的结点称之为叶子 高度/深度:一颗树的层数 度/阶:一棵树中任一结点所具有的最大孩子数目 树的分类 分类标准:任一结点可以具有的最大孩子数目,称为度。我们主要学习二叉树,即每个结点下最多有两个孩子的树。 完全树:底层叶子都位于树的左边的平衡树称为完全树 满树:在一颗n元树中,所有叶子都位于一层,且除叶子外的每个结点都有n个孩子,则该树被称作满树 平衡:树的所有叶子之间相差层数不超过一层的树称为稳定的树 二叉树 性质 二叉树的每一个结点最多具有两个孩子结点 在二叉树的第i层最多有2i-1个结点 深度为k的二叉树最多有2k-1个结点 对任何一棵二叉树,如果其叶结点个数为n0,度为2的结点数为n2则有n0=n2+1 完全二叉树 对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树 满二叉树 每层结点都是满的二叉树 树的遍历(四种方法)

Mysql索引分类

旧城冷巷雨未停 提交于 2019-12-05 11:07:09
在绝大多数情况下,Mysql索引都是基于B+树的,而索引可以提高数据查询的效率。 但是Mysql是如何利用B+树进行查询的呢?索引的作用只是提高查询效率吗? Mysql中的B+Tree索引 假设有一张教师表,里面有教师编号、名字、学科、薪资四个字段。 当你执行下面这条创建索引的sql语句时: create index id_name on teacher(name); Mysql就会在磁盘中构建这样一颗B+树: 这样一棵树有什么用呢?首先当然是加速查询。 举个简单的例子,假设现在要查找名字为“Mozart”的教师的数据: select * from teacher where name = "Mozart"; 既然我们已经建立了B+树,那么就要好好利用它来加速查询,而不是傻傻的去遍历整张表。 从根节点开始,我们发现,根节点就是”Mozart”,不过很可惜,根节点上面只有name字段的信息,没有其他字段的数据。 这是B+树的一个特点——只有叶子节点(leaf nodes)会指向行数据。 我们比较了要查找的值和搜索码值,发现相等,于是跳到搜索码右边的指针指向的节点,也就是“Srinivasan”所在的节点(注意,这里的节点是指下图红色框画出的区域)。 接着,我们遍历当前节点的搜索码值,和要查找的值做比较。 我们发现“Srinivasan”已经大于我们要查找的”Mozart”了

MyBatis(动态SQL)

半城伤御伤魂 提交于 2019-12-05 09:48:47
if:判断 choose(when,otherwise):分支选择,类似java中的switch-case   如果带了id就用id查,如果带了lastName就用lastName查;只会进入其中一个 trim:字符串截取(where(封装查询条件),set(封装修改条件)) foreach 一、使用if 查询的时候,如果某些条件没带可能sql拼装会有问题 1、给where后面加上1=1 ,以后的条件都and xxx; 2、MyBatis使用where标签来将所有的查询条件包括在内。MyBatis就会将where标签中拼装的sql,多出来的and或者or去掉。( 只会去掉第一个多出来的and或者or ),and或者or都放在左边。 //携带了哪个字段查询条件就带上这个字段的值 public List<Employee> getEmpsByConditionIf(Employee employee); <!--查询员工,要求:携带了哪个字段查询条件就带上这个字段的值--> <select id="getEmpsByConditionIf" resultType="emp"> select * from tbl_employee <where> <!-- test:判断表达式(OGNL) OGNL的使用参照官方文档或者百度 从参数中取值进行判断 遇见特殊符号应该写转义字符; -->