遍历

二叉树(Java实现)

匿名 (未验证) 提交于 2019-12-02 21:52:03
一、常见用语 1、逻辑结构: 描述数据之间逻辑上的相关关系。分为线性结构(如,字符串),和非线性结构(如,树,图)。 2、物理结构: 描述数据的存储结构,分为顺序结构(如,数组)和链式结构。 3、结点的度: 一个节点子树(即分支)个数。 4、叶结点: 也称为 终端节点, 指度为0的节点。 5、树的深度(高度): 树中结点层次的最大值。 6、有序树: 子树有先后次序之分(我的理解就是左右节点次序不可以颠倒)。 7、同构: 将节点适当重命名,即可得两颗完全相同的树 8、孩子节点: 一个节点的直接后继节点。 9、双亲节点: 一个节点的直接前驱节点。 二、二叉树中的概念 1、二叉树: 满足以下两个条件的树称为二叉树 ①节点的度不可以超过2 ②节点的孩子节点次序不可颠倒 2、满二叉树: 每层得节点数都是满的,即2 i-1 3、完全二叉树: 节点1~n分别对应于满二叉树的节点1~n 4、完全二叉树的性质: 三、二叉树的操作 public class TreeNode { String data; TreeNode LChild; TreeNode RChild; TreeNode(String data) { this.data = data; } public String toString() { return data; } } 使用前序遍历创建二叉树是比较合适,按照逻辑

Java遍历D盘

匿名 (未验证) 提交于 2019-12-02 21:52:03
Java遍历D盘打印文件路径和大小 public class Main { public static void main ( String args []) { String filePath = "D:\\" ; Main m1 = new Main (); File file = new File ( filePath ); m1 . test ( file ); } private void test ( File file ) { Map < String , String > fileList = new HashMap < String , String >(); //判断是否为文件夹 if ( file . isDirectory ()){ File [] files = file . listFiles (); if ( files != null ){ for ( int i = 0 ; i < files . length ; i ++){ test ( files [ i ]); } } } else if ( file != null ){ String key = file . getAbsolutePath (); Long lastTime = file . lastModified (); Calendar cal = Calendar .

阿里java开发手册阅读心得

匿名 (未验证) 提交于 2019-12-02 21:52:03
最近抽空学习了下阿里之前开放出来的java开发手册,其中提出的规约有的是基于代码书写规范的统一,有的是基于代码的安全性、执行效率考虑的。其中提到的大部分要求在实际编码中都是很好的建议,也有个别建议在实际项目中可能并不合适,要视项目的规模、场景决定。这里总结了其中感觉比较有价值的一些规范: 1.所有的覆写方法,必须加@Override注解 这一点自己还是很有感触的,在很多项目代码中经常看到覆写父类的方法上不带该注解,通常情况下编译也不会报错。加上该注解就是明确告知代码阅读者该方法是多态的,同时提供了编译期检查,如果继承族上无该方法签名或方法签名被改动,编译器会报错。 2.避免通过一个类的对象引用访问此类的静态变量或静态方法 通过对象访问静态变量或静态方法会增加编译器解析成本,应该直接用类名来访问。在追求性能的代码中需要注意这一点 3.使用常量或确定有值的对象来调用equals NPE问题是java中最常见的问题,凡是涉及NPE问题的地方都需要注意。如果用null对象调用equals,会报空指针异常。所以好的习惯是使用"test".equals(object),而非object.equals("test")。如果觉得别扭,JDK7之后的版本可以使用Objects.equals(a,b) 4.使用索引访问用String的split方法得到的数组时,需做最后一个分隔符后有无内容的检查

Python高效率遍历文件夹寻找重复文件

梦想的初衷 提交于 2019-12-02 21:51:40
前言 为什么要写这篇文章呢。。。主要还是业务中有个需求,遍历一个将近200w数据的文件夹,大部分还都是视频文件那种,但是这玩意用的次数还不多,做文件夹index也不是很ok,所以写了一个脚本来处理这个问题,从而发现了自己的一些薄弱点,将其记录下来,方便自己,也方便未来其他的兄弟使用 基本需求 把文件夹中的重复文件找出来 找出来之后用csv输出,左边是源文件,右边是重复文件 效率不能差,不能直接撑爆内存,不能占用过多资源 检测的文件夹和存放csv的地方可以自己定义,加上终端交互 重复文件筛选支持md5,大小等方式 需求分析 首先要分析一点,就是我们该如何去做重复文件的对比,并且效率还要高,首先网上过多的递归,os.walk的方法不可用,因为他们都会把遍历到的内容直接做成一个大列表,塞到内存里面,数据量大很容易爆掉,并且还要进行MD5,或者是大小比对,这个就非常难缠了。 基础想法 其实说白了,拿到所有文件列表file_list,把文件依次对比,这里我们可以用dict,分两种情况 按照文件名和大小 设定两个dict,例如record和dup,遍历file_list,生成一个数组,比对其中的文件名和大小 按照大小和MD5值 设定两个dict,例如record和dup,遍历file_list,生成一个数组,比对其中的md5值和大小 具体代码 闲话休提,我们开始写代码吧 定义遍历函数代码

java8实现map遍历,map转list,list转map

匿名 (未验证) 提交于 2019-12-02 21:40:30
遍历map map.forEach((k, v) -> System.out.println("key:value = " + k + ":" + v)); mapתlist map.entrySet().stream().map(e -> new Person(e.getKey(),e.getValue())).collect(Collectors.toList()); listתmap Map<Integer, String> result1 = list.stream().collect( Collectors.toMap(Hosting::getId, Hosting::getName)); 文章来源: https://blog.csdn.net/ayoungyeah/article/details/91491680

Java集合

匿名 (未验证) 提交于 2019-12-02 21:38:03
集合与数组 数组: (可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。 集合: (只能存储对象,对象类型可以不一样)的长度可变(动态的数组),可在多数情况下使用。 集合的分类: 在java集合中,集合分了两个大的接口,分别为:Collection接口和Map接口。 Collection接口又分为:List接口和Set接口。分别由不同的子类来实现。 集合的方法: 我先创建一个ArrayList对象,用ArrayList来说明一下集合里面的基本方法: Collection coll = new ArrayList(); (1)、size()方法:返回集合中元素个数 System.out.println(coll.size()); (2)、add(Object obj):向集合中添加一个元素(注:现在我没有使用泛型,所以不同类型的数据都能添加到集合中) coll.add("AA"); coll.add(new Date()); coll.add(123); coll.add('B'); (3)、addAll(Collection coll):将形参coll中包含的所有元素添加到当前集合中 Collection coll1 = Arrays.asList(1,2,3); coll.addAll(coll1);

第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

二次信任 提交于 2019-12-02 21:25:44
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 4.提供图片或网站显示的学习进度,证明学习的过程。 5.写一篇不少于1000字的学习笔记,谈一下学习的体会和收获。 经过这两周对嵩天老师的《 Python 网络爬虫及信息提取》的学习, 让我了解到 python 第三方库的强大,以及对网络爬虫前所未有的了解。让我对 python 有了更深层次的了解。 学完前面四周的课程,嵩天老师的 《 Python 网络爬虫及信息提取》 主要通过 Requests 、 robots.txt 、 BeautifulSoup 、 Re 、 Scrapy 和对这些库的应用进行讲解 一、Requests 库:自动爬取 HTML 页面与自动网络请求提交。 首先我们学习了如何安装 Requests 库,在 win 平台,“以管理员身份运行” cmd ,执行 pip install requests ,以及 Requests 库的 7 个主要方法: request 、 get 、 head 、 post 、 put 、 patch 、 delete 的使用, Requests 库的 2 个重要对象: Request 、 Response 、 Response 对 象包含爬虫返回的内容的了解及使用。 二

基于bs4库的HTML标签遍历方法

匿名 (未验证) 提交于 2019-12-02 20:32:16
import requests r=requests.get('http://python123.io/ws/demo.html') demo=r.text HTML可以看做一棵标签树 ! 属性 说明 .contents 将该标签所有的儿子节点存入列表 .children 子节点的迭代类型,和contents类似,用于遍历儿子节点 .descendants 子孙节点的迭代类型,包含所有的子孙跌点,用于循环遍历 import requests from bs4 import BeautifulSoup r=requests.get('http://python123.io/ws/demo.html') demo=r.text soup=BeautifulSoup(demo,'html.parser') print(soup.contents)# 获取整个标签树的儿子节点 print(soup.body.content)#返回标签树的body标签下的节点 print(soup.head)#返回head标签 print(len(soup.body.content))#输出body标签儿子节点的个数 print(soup.body.content[1])#获取body下第一个子标签 遍历子孙节点 import requests from bs4 import BeautifulSoup r

建立二叉树,并完成三种遍历算法

不打扰是莪最后的温柔 提交于 2019-12-02 20:23:34
#include<iostream> #include<stack> #define TElemType char using namespace std; typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; //先序遍历的顺序建立二叉链表 void xCreateBiTree(BiTree &T) { char ch; cin>>ch; if(ch=='#') T=NULL; else { T=new BiTNode; T->data=ch; xCreateBiTree(T->lchild); xCreateBiTree(T->rchild); } } //先序遍历输出 void xPrintTree(BiTree T) { if(T) { cout<<T->data; xPrintTree(T->lchild); xPrintTree(T->rchild); } else { return; } } //中序遍历的顺序建立二叉链表 void zCreateBiTree(BiTree &T) { char ch; cin>>ch; if(ch=='#') T=NULL; else { T=new BiTNode; zCreateBiTree(T-

第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

僤鯓⒐⒋嵵緔 提交于 2019-12-02 20:04:51
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 4.提供图片或网站显示的学习进度,证明学习的过程。 5.写一篇不少于1000字的学习笔记,谈一下学习的体会和收获 在10天之内断断续续的学习了由鄂老师推荐的《Python网络爬虫与信息提取》,自己慢慢了解到原来通过python爬取数据是这样操作的。 不得不说,python是一门在获取和处理数据方面方便快捷的语言。 第一个模块首先是介绍了request库的学习,request库的7个主要方法需要去我们学习,掌握。这七方法分别是:request、get、head、post、 put、patch、delete。我用了get方法获取到百度首页的信息,然后我们获取到的资源都是有编码的,我们需要将编码方式改为:utf-8,就可以把 编码转换为我们可以理解的形式。嵩天老师还介绍了爬取网页的的通用代码框架,在使用get方法获得网页的时候,可能会出现诸如一下的异常: (1) requests. Connectionerror网络连错误异常,如DNS查询失败、拒绝连接等;(2) requestsHTTPERROR:HTTP错误异常(3) requests. URL Required: URL缺失异常;(4) requests.