
数据结构实现
用java实现的数据结构
水木糸
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA实现数据结构:哈希表
文章目录哈希表一 定义二 基本概念三 散列函数的构造两个原则考虑因素1.直接定址法2.数字分析法3. 平方取中法4.折叠法5.除留余数法6.随机数法四 冲突处理1.开放定址法2.再散列函数法3.链地址法4.公共溢出区法五 散列表查找实现 哈希表 一 定义 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中...原创 2020-02-13 16:16:40 · 253 阅读 · 0 评论 -
JAVA实现数据结构:字典/哈夫曼/线段树
文章目录字典树(Trie树)哈夫曼树(最优二叉树)线段树 字典树(Trie树) 定义 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 性质 它有3个基本性质: 根节点不包含...原创 2020-02-12 18:12:24 · 368 阅读 · 0 评论 -
JAVA实现数据结构:图
图 文章目录图1.图的基本概念2.图的存储结构2.1邻接矩阵2.1.1无向图的邻接矩阵实现2.1.2无向图的邻接矩阵实现2.2邻接表2.2.1无向图的邻接表实现 1.图的基本概念 图按照有无方向分为无向图和有向图。无向图由顶点和边构成,有向图由顶点和 弧构成.弧有弧尾和弧头之分, 图按照边或弧的多少分稀疏图和穉密图。如果任意两个顶点之间都存在边叫完全 图,有向的叫有向完全围。若无重复的边或顶点到自...原创 2020-02-03 18:20:42 · 900 阅读 · 0 评论 -
JAVA实现数据结构:二叉树
参考书籍:《大话数据结构》 树 树(tree)是包含n(n>=0)个结点的有穷集,其中: (1)每个元素称为结点(node); (2)有一个特定的结点被称为根结点或树根(root)。 (3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1<=i<=m)本身也是一棵树,被称作原树的子树(subtree)。 结点 结点...原创 2020-01-22 23:14:01 · 249 阅读 · 0 评论 -
栈的应用:表达式求值
栈(Stack):LIFO(后进先出)表 操作 实现 栈是一个表,因此任何实现表的方法都能实现栈。即栈是一个只对数组表或链表的末尾进行操作的模型。 应用:表达式求值 对于原理,可以参考https://www.jianshu.com/p/762ab1825776 ...原创 2020-01-16 13:29:09 · 150 阅读 · 0 评论 -
JAVA实现数据结构:双链表
双链表去掉前驱指针即为单链表 节点类(以内部类形式使用) 链表中内部类和嵌套类的区别: https://blog.youkuaiyun.com/WelcomeSpring/article/details/79430546 // 节点类,以内部类形式 private class Node<E> { private E date; // 数据 private Node next; //...原创 2020-01-13 17:40:23 · 165 阅读 · 0 评论 -
JAVA实现数据结构:数组链表
链表是数据结构中最基础的内容,链表在存储结构上分成两种:数组形式储存,链式存储。 相比c语言需要的结构体,在java中由于有了面向对象编程,将指针‘藏’了起来,不需要分配内存。 所以只需要创建一个对象数组,为了能让链表更加实用,方便存储非基本类型的对象,所以使用了泛型。 菱形运算符<>中放你自己写的或者基本类型,比如你创建了一个Stdent类,想用链表将很多学生的信息存起来。 就可以m...原创 2020-01-12 16:34:43 · 375 阅读 · 0 评论