-
图的十字链表存储构架
所属栏目:[语言] 日期:2022-07-08 热度:148
前面介绍了图的邻接表存储法,本节继续讲解图的另一种链式存储结构十字链表法。 与邻接表不同,十字链表法仅适用于存储有向图和有向网。不仅如此,十字链表法还改善了邻接表计算图中顶点入度的问题。 十字链表存储有向图(网)的方式与邻接表有一些相同,[详细]
-
图的邻接多层表存储结构
所属栏目:[语言] 日期:2022-07-08 热度:185
前面讲过,无向图的存储可以使用邻接表,但在实际使用时,如果想对图中某顶点进行实操(修改或删除),由于邻接表中存储该顶点的节点有两个,因此需要操作两个节点。 为了提高在无向图中操作顶点的效率,本节学习一种新的适用于存储无向图的方法邻接多重表[详细]
-
深度优先搜索 DFS 深搜 及广度优先搜索 BFS 广搜
所属栏目:[语言] 日期:2022-07-08 热度:103
深度优先搜索的过程类似于树的先序遍历,首先从例子中体会深度优先搜索。例如图 1 是一个无向图,采用深度优先算法遍历这个图的过程为: 首先任意找一个未被遍历过的顶点,例如从 V1 开始,由于 V1 率先访问过了,所以,需要标记 V1 的状态为访问过; 然后[详细]
-
深度优先生成树和广度优先生成树 解析版
所属栏目:[语言] 日期:2022-07-08 热度:128
前面已经给大家介绍了有关生成树和生成森林的有关知识,本节来解决对于给定的无向图,如何构建它们相对应的生成树或者生成森林。 其实在对无向图进行遍历的时候,遍历过程中所经历过的图中的顶点和边的组合,就是图的生成树或者生成森林。 具体实现的代码[详细]
-
重连通图与重连通分量
所属栏目:[语言] 日期:2022-07-08 热度:124
在无向图中,如果任意两个顶点之间含有不止一条通路,这个图就被称为重连通图。在重连通图中,在删除某个顶点及该顶点相关的边后,图中各顶点之间的连通性也不会被破坏。 在一个无向图中,如果删除某个顶点及其相关联的边后,原来的图被分割为两个及以上的[详细]
-
Python输入模块 Python import用法
所属栏目:[语言] 日期:2022-07-07 热度:196
使用 Python 进行编程时,有些功能没必须自己实现,可以借助 Python 现有的标准库或者其他人提供的第三方库。比如说,在前面章节中,我们使用了一些数学函数,例如余弦函数 cos()、绝对值函数 fabs() 等,它们位于 Python 标准库中的 math(或 cmath)模块[详细]
-
Java Byte类
所属栏目:[语言] 日期:2022-07-07 热度:162
Byte 类将基本类型为 byte 的值包装在一个对象中。一个 Byte 类的对象只包含一个类型为 byte 的字段。此外,该类还为 byte 和 String 的相互转换提供了方法,并提供了一些处理 byte 时非常有用的常量和方法。 Byte 类的构造方法 Byte 类提供了两个构造方法[详细]
-
Java System类详解
所属栏目:[语言] 日期:2022-07-07 热度:171
System 类位于 java.lang 包,代表当前 Java 程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。由于该类的构造方法是 private 的,所以无法创建该类的对象,也就是无法实例化该类。 System 类提供了一些类变量和类方法,允许直接通过 Syste[详细]
-
Java数组简介 数组是什么
所属栏目:[语言] 日期:2022-07-07 热度:90
在某些情况下,虽然可以使用单个变量来存储信息,但是如果需要存储的信息较多(例如存储 50 名学生的成绩),这时再依次创建变量声明并赋值显得非常麻烦。 随着处理的信息量越来越大,工作也就越来越烦琐,这时可以使用数组或集合来存储信息。通过使用数组[详细]
-
Java一维数组的定义 赋值和初始化
所属栏目:[语言] 日期:2022-07-07 热度:120
当数组中每个元素都只带有一个下标时,这种数组就是一维数组。一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合,是数组中最简单的一种数组。 数组是引用数据类型,引用数据类型在使用之前一定要做两件事情:声明和初始化。所以本文[详细]
-
Java二维数组详解
所属栏目:[语言] 日期:2022-07-07 热度:68
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来。二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明[详细]
-
Java多维数组
所属栏目:[语言] 日期:2022-07-07 热度:191
除了一维数组和二维数组外,Java 中还支持更多维的数组,如三维数组、四维数组和五维数组等,它们都属于多维数组。经过前面一维,二维的练习后不难发现,想要提高数组的维数,只要在声明数组时将索引与中括号再加一组即可,所以三维数组的声明为 int score[详细]
-
Java不规则数组
所属栏目:[语言] 日期:2022-07-07 热度:56
通过前面的学习我们知道 Java 实际上没有多维数组,只有一维数组。多维数组被解释为是数组的数组,所以因此会衍生出一种不规则数组。 规则的 43 二维数组有 12 个元素,而不规则数组就不一定了。如下代码静态初始化了一个不规则数组。 int intArray[][] =[详细]
-
Java数组也是一种数据类型
所属栏目:[语言] 日期:2022-07-07 热度:186
Java 的数组要求所有的数组元素具有相同的数据类型。因此,在一个数组中,数组元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据,而不能存储多种数据类型的数据。 因为 Java 语言是面向对象的语言,而类与类之间可以支持继承关系(从已有的类[详细]
-
Java Arrays工具类
所属栏目:[语言] 日期:2022-07-07 热度:110
Arrays 类是一个工具类,其中包含了数组操作的很多方法。这个 Arrays 类里均为 static 修饰的方法(static 修饰的方法可以直接通过类名调用),可以直接通过 Arrays.xxx(xxx) 的形式调用方法。 1)int binarySearch(type[] a, type key) 使用二分法查询 ke[详细]
-
Python字符串对齐方法 ljust rjust 和center 细说
所属栏目:[语言] 日期:2022-07-06 热度:112
Python str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust()、rjust() 和 center() 方法,本节就来一一介绍它们的用法。 Python ljust()方法 ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。 ljust() 方法的基本格[详细]
-
Python startswith 和endswith方式
所属栏目:[语言] 日期:2022-07-06 热度:92
除了前面介绍的几个方法外,Python 字符串变量还可以使用 startswith() 和endswith() 方法。 startswith()方法 startswith() 方法用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。此方法的语法格式如下: str.startswith(sub[,star[详细]
-
Python字符串大小写转变 几种 函数及用法
所属栏目:[语言] 日期:2022-07-06 热度:107
Python 中,为了方便对字符串中的字母进行大小写转换,字符串变量提供了 3 种方法,分别是 title()、lower() 和 upper()。 Python title()方法 title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换[详细]
-
Python去除字符串中空格 删除指定字符 的几种方式
所属栏目:[语言] 日期:2022-07-06 热度:142
用户输入数据时,很有可能会无意中输入多余的空格,或者在一些场景中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符。 这里的特殊字符,指的是制表符(t)、回车符(r)、换行符(n)等。 Python 中,字符串变量提供了[详细]
-
Python format 格式化输出方案详解
所属栏目:[语言] 日期:2022-07-06 热度:187
前面章节介绍了如何使用 % 操作符对各种类型的数据进行格式化输出,这是早期 Python 提供的方法。自 Python 2.6 版本开始,字符串类型(str)提供了 format() 方法对字符串进行格式化,本节就来学习此方法。 format() 方法的语法格式如下: str.format(arg[详细]
-
Python encode 和decode方式 字符串编码转换
所属栏目:[语言] 日期:2022-07-06 热度:198
前面章节在介绍 bytes 类型时,已经对 encode() 和 decode() 方法的使用做了简单的介绍,本节将对这 2 个方法做详细地说明。 我们知道,最早的字符串编码是 ASCII 编码,它仅仅对 10 个数字、26 个大小写英文字母以及一些特殊字符进行了编码。ASCII 码做多[详细]
-
Python dir 和help 协助函数
所属栏目:[语言] 日期:2022-07-06 热度:86
前面我们已经学习了很多字符串提供的方法,包括 split()、join()、find()、index() 等,但这远远不是它的全部方法。由于篇幅有限,本章只能给大家列举一些最常用的方法,至于其他的方法,读者可通过本节介绍的 dir() 和 help() 函数自行查看。 Python dir([详细]
-
Python if else条件语句说明
所属栏目:[语言] 日期:2022-07-06 热度:116
前面我们看到的代码都是顺序执行的,也就是先执行第1条语句,然后是第2条、第3条一直到最后一条语句,这称为顺序结构。 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用,儿童因为年龄不够,没有权限使用。这时候程序就[详细]
-
Python if else对缩进的需求
所属栏目:[语言] 日期:2022-07-06 热度:130
前面的《Python if else》一节展示了选择结构的三种基本形式,并给出了实例演示,但是大家在编写代码过程中仍然要注意一些细节,尤其是代码块的缩进,这对 if else 选择结构极其重要。 Python 是以缩进来标记代码块的,代码块一定要有缩进,没有缩进的不是[详细]
-
Python if语句嵌套 进门必读
所属栏目:[语言] 日期:2022-07-06 热度:54
前面章节中,详细介绍了 3 种形式的条件语句,即 if、if else 和 if elif else,这 3 种条件语句之间可以相互嵌套。 例如,在最简单的 if 语句中嵌套 if else 语句,形式如下: if 表达式 1: if 表示式 2: 代码块 1 else: 代码块 2 再比如,在 if else[详细]