遍历

python入门基础

六月ゝ 毕业季﹏ 提交于 2019-12-06 00:04:39
#-*-coding:UTF-8 -*- num=[]; #输入三个数值,使用空格隔开 num=input("请输入三个数值:").split(' ');#此时的数值全部属于字符串形式,如果需要可以进行类型的强转 a=num[0]; b=num[1]; c=num[2]; print(a,b,c) #-*-coding:UTF-8 -*- num=int(input());#此时表示属于了一个int 类型的数值 print(type(num));#输出他所表示的类型 #类型转化的例子 a="1"; b=int(a)+1; print(b)#结果输出2(int类型) #eval()函数将字符串表达式转化成表达式进行计算得到数值 a1="1+2"; print(eval(a1));#输出的结果为3 #str()函数将数值转化成字符串 x=1;#int类型的数值 print(type(str(x)));#<class 'str'> #repr()函数将对象转化为可打印字符串 #chr()将一个整数转化为可对应的ASCII码的字符 a2=65; print(chr(a2));#A #ord()函数将一个字符串转化为对应ASCII码值 a3='A'; print(ord(a3));#65 ''' 使用hex()函数将一个整数转化为一个十六进制字符串 使用oct(

树形结构的数据库表Schema设计

本小妞迷上赌 提交于 2019-12-05 23:09:00
程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,因此是不能直接将Tree存入DBMS,设计合适的Schema及其对应的CRUD算法是实现关系型数据库中存储树形结构的关键。 理想中树形结构应该具备如下特征:数据存储冗余度小、直观性强;检索遍历过程简单高效;节点增删改查CRUD操作高效。无意中在网上搜索到一种很巧妙的设计,原文是英文,看过后感觉有点意思,于是便整理了一下。本文将介绍两种树形结构的Schema设计方案:一种是直观而简单的设计思路,另一种是基于左右值编码的改进方案。 一、基本数据 本文列举了一个食品族谱的例子进行讲解,通过类别、颜色和品种组织食品,树形结构图如下: 二、继承关系驱动的Schema设计 对树形结构最直观的分析莫过于节点之间的继承关系上,通过显示地描述某一节点的父节点,从而能够建立二维的关系表,则这种方案的Tree表结构通常设计为:{Node_id,Parent_id},上述数据可以描述为如下图所示: 这种方案的优点很明显:设计和实现自然而然,非常直观和方便。缺点当然也是非常的突出:由于直接地记录了节点之间的继承关系,因此对Tree的任何CRUD操作都将是低效的,这主要归根于频繁的“递归”操作

java之vector详细介绍

一世执手 提交于 2019-12-05 22:09:31
https://www.cnblogs.com/msymm/p/9873551.html 1 vector介绍 Vector简介 Vector 是 矢量队列 ,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。 Vector 继承了AbstractList,实现了List;所以, 它是一个队列,支持相关的添加、删除、修改、遍历等功能 。 Vector 实现了RandmoAccess接口,即 提供了随机访问功能 。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。 Vector 实现了Cloneable接口,即实现clone()函数。它能被克隆。 和ArrayList不同, Vector中的操作是线程安全的 。 Vector的构造函数 Vector共有4个构造函数 // 默认构造函数 Vector() // capacity是Vector的默认容量大小。当由于增加数据导致容量增加时,每次容量会增加一倍。 Vector(int capacity) // capacity是Vector的默认容量大小,capacityIncrement是每次Vector容量增加时的增量值。 Vector

判断一个数组是否为后序遍历结果

落花浮王杯 提交于 2019-12-05 21:44:33
输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。 思路一: 中序遍历为增长数组,判断是否矛盾 思路二: 如5、7、6、9、11、10、8 代码编写具体思路: 1.找到第一个大于根节点的数,即9,所以9之后的为右子树 2.如果右子树的值都大于根节点8,则符合 3.递归法分别判断是否左子树和右子树都符合这种特点。 package com.lifeibigdata.algorithms.blog; import java.util.Arrays; /** * * 5、7、6、9、11、10、8 * 8 / \ 6 10 / \ / \ 5 7 9 11 */ public class SearchTree { public static void main(String[] args) { // int[] a = {5,7,6,9,11,10,8}; //true int a[] = {7, 4, 6, 5} ; //false System.out.println(searchTree(a,a.length)) ; } static boolean searchTree(int[] a,int length){ if (a == null || length <= 0){ return false; } boolean flag

20182316胡泊 第10周学习总结

流过昼夜 提交于 2019-12-05 20:31:21
20182316胡泊 2019-2020-1 《数据结构与面向对象程序设计》第10周学习总结 教材学习内容总结 第十九章 图 什么是图 1.图的概念 概念:我理解的图就是由内容和相互关系组成的非线性的存储数据的形式,具体来说就是由结点来存储元素,连线代表关系。 树中的每个结点都只有一个父结点,如果我们允许一个结点连通多个其他结点,树就变成了图。 术语: 顶点(Vertex):图中的数据元素。 边(Edge):图中各个顶点之间的连接。 邻接/邻居:两个顶点之间有一条边,则称这两个顶点是邻接的。 路径:连接两个顶点之间的一系列边称为两个顶点间的路径,边的条数称为路径长度(路径长度=顶点数-1)。 环路:首顶点与末顶点相同且路径中没有边重复的路径。 分类: 【是否有方向】无向图和有向图 【每条边带有权重或代价】加权图/网络(加权图可以是有向的也可以是无向的) 1.无向图 无向图 :是一种边为无序结点对的图。在无向图中,(A,B)(B,A)指的是一条边,表示A与B之间有一条两个方向都连通的边。 完全 :一个无向图是完全的,说明对于有n个顶点的无向图,图中有n(n-1)/2条边。 连通 :如果无向图中的任何两个顶点之间都存在一条路径,则认为该无向图是连通的。 同时连通还分为强连通和弱连通(非强连通),强连通图中,任何两个顶点之间都是连通的,就是说任何两个顶点之间都至少有一条路径。

20182322 2019-2020-1 《数据结构与面向对象程序设计》第10周学习总结

天涯浪子 提交于 2019-12-05 20:30:57
教材学习内容总结 树的定义是,除根结点之外,树的每个结点都恰好有一个父结点。 而如果违背了这一个前提,即允许树的每个结点连通多个其它结点,不再有父亲、孩子之说,即得到孩子的概念 一、无向图 图与树类似,也由结点和这些结点之间的连接构成(这些结点就是图的顶点,而结点之间的连接就是图的边) 无向图是一种边为无序结点对的图 如果图中的两个顶点之间有一条连通边,则称这两个顶点是邻接的(也互称邻居) 连通一个顶点及其自身的边称为自循环或环 如果无向图拥有最大数目的连通顶点的边,则认为这个无向图是完全的 对有n个顶点的无向图,要使该图为完全的,要求有n(n-1)/2条边(这里假设其中没有边是自循环的) 路径是图中的一系列边,每条边连通两个顶点(无向图中的路径是双向的) 如果无向图中的任意两个顶点之间都存在一条路径,则认为这个无向图是连通的 环路是一种首顶点和末顶点相同且没有重边的路径 没有环路的图称为无环的 无向树是一种连通的无环无向图,其中一个元素被指定为树根 二、有向图 有向图(双向图),它是一种边为有序顶点对的图 有向图的路径是图中连通两个顶点的有向边序列(有向图中的路径不是双向的) 如果有向图中没有环路,且有一条从A到B的边,则可以把顶点A安排在顶点B之前。这种排列得到的顶点次序称为拓扑序 三、网络(加权图) 网络:一种每条边都带有权重的或代价的图 根据需要,网络可以是无向的

20182333 2019-2020-1 《数据结构与面向对象程序设计》第十周学习总结

别说谁变了你拦得住时间么 提交于 2019-12-05 20:15:53
20182333 2019-2020-1 《数据结构与面向对象程序设计》第十周学习总结 教材学习内容总结 图 与树类似,图由结点和这些结点之间的连接构成。 顶点(vertice):就是结点。 边(edge):就是这些结点连接起来的线段。 路径(path):图中的一系列边,每条边连通两个顶点。 路径的长度(length):是该路径中边的条数(或者是顶点数减去1)。 环路(cycle):一种首结点和末结点相同且没有重边的路径。没有环路的图称为无环的(acyclic)。 完全图(complete graph):含有最多条边的无向图 无向图 边没有方向的图称为无向图。 无向图中,表示边的顶点对是无序的,例如,标记顶点A,B,C,D,一条边可以表示为(A,B)。无向图表示顶点对是无序的,所以边(A,B)意味着A和B之间的连接是双向的,在一个无向图中,(A,B)和(B,A)所代表的边的含义完全一样。 含有最多条边的无向图称为完全图:Edges=(n-1)*n/2. 如果无向图中任意两个顶点间都有路径,则无向图称为连通的。 路径是连接图中两个顶点的边的序列,路径长度为路径所含边的数目(顶点个数减一) 第一个顶点和最后一个顶点是同一个顶点且没有重复边的路径,称为一个环。 如果图中两个顶点之间有边连接,则称这两个顶点是邻接的(邻居),自己连接到自己的边称为自循环或悬挂。 有向图

.Net 中HashTable,HashMap 和 Dictionary<key,value> 和List<T>和DataTable的比较

一笑奈何 提交于 2019-12-05 20:15:26
.Net 中HashTable,HashMap 和 Dictionary<key,value> 和List 和DataTable的比较 转载自http://www.cnblogs.com/jilodream/p/4219840.html (一)HashTable 和Dic 数据结构 Hashtable和Dictionary从数据结构上来说都属于Hashtable(哈希表),都是对关键字(键值)进行散列操作,将关键字散列到Hashtable的某一个槽位中去,不同的是处理碰撞的方法。散列函数有可能将不同的关键字散列到Hashtable中的同一个槽中去,这个时候我们称发生了碰撞,为了将数据插入进去,我们需要另外的方法来解决这个问题。 采用链表法的是Dic 而采用开放寻址法(open addressing)-中 双重散列的方法的是 HashTable 至于这两种数据结构的使用方法 请自行阅读算法导论 或者参照网上博客 但从底层的数据结构可以发现 如果增删的动作很多的话 推荐使用Dic 因为解决碰撞的方式 是List.Add 如果改动的动作很少 查询的动作很多的话 则推荐 使用HashTable 因为映射查找之后 只需要跳跃查找到 碰撞后移动数据即可,另外当增加数据太多时,开放寻址的扩容很耗费性能(请阅读<算法导论>) Dic 和HashTable使用比较 1:单线程程序中推荐使用

jquery--遍历

做~自己de王妃 提交于 2019-12-05 19:50:45
1、遍历元素下所有子元素 (不包括孙子级) $("#taskPropertyForm").children().each(function (i, item) { var $this = $(item); var _this = item; console.log(i); console.log(item.tagName); }); 2、遍历元素下所有的子元素(包括所有子级,孙子及。。。) $("#taskPropertyForm").find("*").each(function (i, item) { var $this = $(item); var _this = item; console.log(i); console.log(item.tagName); }); 3、遍历对象 var b = new Object; b.property = [{ "id": "f_p_id", "text": "span", "value": "1111" }, { "id": "f_p_name", "text": "input", "value": "222222" }, { "id": "f_p_info", "text": "textarea", "value": "333333" }]; $.each(b.property, function (i, item) {