数据结构
文章平均质量分 86
愿你一世安呀
这个作者很懒,什么都没留下…
展开
-
数据结构----二叉树
五、二叉树一、二叉树入门之前我们实现的符号表中,不难看出,符号表的增删查操作,随着元素个数N的增多,其耗时也是线性增多的,时间复杂度都是O(n),为了提高运算效率,接下来我们学习树这种数据结构。1.1 树的基本定义树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、单位的组织架构、等等。树是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树具有以下特原创 2022-02-09 16:44:42 · 2385 阅读 · 0 评论 -
数据结构----符号表
四、符号表符号表最主要的目的就是将一个键和一个值联系起来,符号表能够将存储的数据元素是一个键和一个值共同组成的键值对数据,我们可以根据键来查找对应的值。符号表中,键具有唯一性。符号表在实际生活中的使用场景是非常广泛的,见下表:1.1 符号表API设计结点类:符号表:1.2 符号表实现public class SymbolTable<Key, Value> { //记录首结点 private Node head; //记录符号表中元素的个数原创 2022-01-28 17:02:54 · 1514 阅读 · 0 评论 -
数据结构----线性表
三、 线性表线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的有限序列。前驱元素:若A元素在B元素的前面,则称A为B的前驱元素后继元素:若B元素在A元素的后面,则称B为A的后继元素**线性表的特征:**数据元素之间具有一种“一对一”的逻辑关系。第一个数据元素没有前驱,这个数据元素被称为头结点;最后一个数据元素没有后继,这个数据元素被称为尾结点;除了第一个和最后一个数据元素外,其他数据元素有且仅有一个前驱和一个后继。如果把线性表用数学原创 2022-01-28 13:21:06 · 1128 阅读 · 0 评论 -
数据结构----高级排序
二、高级排序之前我们学习过基础排序,包括冒泡排序,选择排序还有插入排序,并且对他们在最坏情况下的时间复杂度做了分析,发现都是O(N^2),而平方阶通过我们之前学习算法分析我们知道,随着输入规模的增大,时间成本将急剧上升,所以这些基本排序方法不能处理更大规模的问题,接下来我们学习一些高级的排序算法,争取降低算法的时间复杂度最高阶次幂。2.1希尔排序希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本。前面学习插入排序的时候,我们会发现一个很不友好的事儿,如果已排序原创 2022-01-25 10:13:49 · 408 阅读 · 0 评论 -
数据结构----简单排序
一、简单排序1.1 Comparable接口介绍由于我们这里要讲排序,所以肯定会在元素之间进行比较,而Java提供了一个接口Comparable就是用来定义排序规则的,在这里我们以案例的形式对Comparable接口做一个简单的回顾。需求:1.定义一个学生类Student,具有年龄age和姓名username两个属性,并通过Comparable接口提供比较规则;2.定义测试类Test,在测试类Test中定义测试方法Comparable getMax(Comparable c1,Comparabl原创 2022-01-23 20:20:11 · 373 阅读 · 0 评论 -
认识数据结构
CopyOnWriteArrayList// java.util.ConcurrentModificationException 并发修改异常public class ListTest { public static void main(String[] args) { // 并发下ArrayList是不安全的 /** * 解决方案: * 1. List<String> list = new Vector<原创 2020-08-16 14:10:11 · 161 阅读 · 0 评论