随笔分类 - Java数据结构
Java数据结构(十二)图的进阶
摘要:一、有向图 在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题,它和我们之前学习的无向图,最大的区别就在于连接是具有方向的,在代码的处理上也会有很大的不同。 1
Java数据结构(十一)图的入门
摘要:图的入门 1.1 图的实际应用: 在现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用场景我们都可以用即将要学习的图这种数据结构去解决。 地图: 我们生活中经常使用的地图,基本上是由城市以及连接城市的道路组成,如果我们把城市看做是一个一个的点,把道路看做是一条一条的连接,那么地图就
Java数据结构(十)并查集
摘要:并查集 并查集是一种树型的数据结构 ,并查集可以高效地进行如下操作: 查询元素p和元素q是否属于同一组 合并元素p和元素q所在的组 1.1 并查集结构 并查集也是一种树型结构,但这棵树跟我们之前讲的二叉树、红黑树、B树等都不一样,这种树的要求比较简单: 每个元素都唯一的对应一个结点; 每一组数据中的
Java数据结构(九)树的进阶
摘要:一、平衡树 之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕。 例如我们依次往二叉查找树中插入9,8,7,6,5,4,3,2,1这9个数据,那么最终构造出来的树是长得下面这个样子: 我们会
Java数据结构(八)优先队列
摘要:优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有优先级的,我们需要在这些计算机的任务中找出优先级最高的任务先执行,执行完毕后就需要把这个任务从队列中移
Java数据结构(七)堆
摘要:堆 **1.1 **堆的定义 堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。 堆的特性: 它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。 它通常用数组来实现。 具体方法就是将二叉树
Java数据结构(六)二叉树入门
摘要:二叉树入门 之前我们实现的符号表中,不难看出,符号表的增删查操作,随着元素个数N的增多,其耗时也是线性增多的,时 间复杂度都是O(n),为了提高运算效率,接下来我们学习树这种数据结构。 1.1 树的基本定义 树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物
Java数据结构(五)符号表
摘要:符号表 符号表最主要的目的就是将一个键和一个值联系起来,符号表能够将存储的数据元素是一个键和一个值共同组成的 键值对数据,我们可以根据键来查找对应的值。 符号表中,键具有唯一性。 符号表在实际生活中的使用场景是非常广泛的,见下表: | 应用 | 查找目的 | 键 | 值 | | | | | | |
Java数据结构(四)线性表
摘要:线性表 线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的有限序列 前驱元素:若A元素在B元素的前面,则称A为B的前驱元素 后继元素:若B元素在A元素的后面,则称B为A的后继元素 **线性表的特征:**数据元素之间具有一种“一对一”的逻辑关系。 第一个数据元素
Java数据结构(三)排序
摘要:一、简单排序 1.1 Comparable接口介绍 由于我们这里要讲排序,所以肯定会在元素之间进行比较,而Java提供了一个接口Comparable就是用来定义排序 规则的,在这里我们以案例的形式对Comparable接口做一个简单的回顾。 需求: 1.定义一个学生类Student,具有年龄age和
Java数据结构(二)算法分析
摘要:1.1、算法的时间复杂度分析 1)函数渐近增长 概念: 给定两个函数f(n)和g(n),如果存在一个整数N,使得对于所有的n>N,f(n)总是比g(n)大,那么我们说f(n)的增长渐近快 于g(n) 规则 算法函数中的 常数 可以忽略 算法函数中 最高次幂的常数因子 可以忽略 算法函数中 最高次幂越
Java数据结构(一)数据结构和算法概述
摘要:一、数据结构和算法概述 1.1、什么是数据结构? 官方解释 数据结构是一门研究非数值计算的程序设计问题中的操作对象, 以及他们之间的关系和操作等相关问题的学科 大白话 数据结构就是把数据元素按照一定的关系组织起来的集合, 用来组织和存储数据 1.2、数据结构分类 传统上,我们可以把数据结构分为 逻辑