![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构
liucw_cn
喜爱java
展开
-
Java数据结构----优先队列
链表实现优先队列原创 2016-02-18 22:24:51 · 1190 阅读 · 0 评论 -
九大排序
一、概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序(使用内存),而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说九大排序就是内部排序。 内部排序有可以分为以下几类: (1)、插入排序:直接插入排序、希尔排序、二分法插入排序。 (2)、选择排序:简单选择排序、堆排序。 (3)、交换排序:冒泡排序、快速排序原创 2017-06-03 20:46:36 · 1034 阅读 · 0 评论 -
java数据结构----B树
一、B-tree B-tree树即B-树(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。按照翻译,B 通常认为是Balance的简称。这个数据结构一般用于数据库的索引,综合效率较高。 1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树,称为B树原创 2017-01-04 20:15:12 · 1139 阅读 · 0 评论 -
Java数据结构----图--最短路径解法Dijkstra算法和Floyd算法
最短路径—Dijkstra算法和Floyd算法1、Dijkstra算法1.1、定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不原创 2016-02-24 15:46:04 · 22047 阅读 · 5 评论 -
Java数据结构----树--红黑树
暂时没实现原创 2016-02-28 10:49:44 · 1566 阅读 · 0 评论 -
Java数据结构----树--堆
1、堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]大顶堆的堆顶的关键字肯定是所有关键字中最大的,小顶堆的堆原创 2016-02-26 17:07:09 · 1042 阅读 · 0 评论 -
Java数据结构----树--二叉查找(搜索或排序)树BST
二叉查找树(Binary Search Tree),是基于二叉树,具有下列性质:1、若左子树不空,则其左子树上的所有结点的值均小于根结点的值;2、若右子树不空,则其右子树上的所有结点的值均大于根结点的值;3、左、右子树也分别为二叉查找树。原创 2016-02-26 17:50:16 · 1370 阅读 · 1 评论 -
Java数据结构----树--平衡二叉树
1、基础知识平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:1.它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。2.其高度一般都良好地维持在O(log2n),大大降低了操作的时间复杂度。3.平衡二叉树的常用算法有红黑树、AVL、Treap等。 4.最小二叉平衡树的节点的公式原创 2016-02-28 10:47:03 · 1826 阅读 · 0 评论 -
Java数据结构----栈(Stack)源码分析和个人简单实现
栈单链表实现:没有长度限制,并且出栈和入栈速度都很快public class LinkedListStack { private LinkedList linkedList = new LinkedList(); //入栈 public void push(Object obj) { linkedList.insertHead(obj);原创 2016-02-17 23:29:07 · 5585 阅读 · 0 评论 -
Java数据结构----图--深度优先遍历BFS和广度优先遍历DFS
一、图的遍历广度优先搜索BFS( Breadth-first search) 算法思想:(1)顶点v入队列。(2)当队列非空时则继续执行,否则算法结束。(3)出队列取得队头顶点v;访问顶点v并标记顶点v已被访问。(4)查找顶点v的第一个邻接顶点col。(5)若v的邻接顶点col未被访问过的,则col入队列。(6)继续查找顶点v的另一个新的邻接顶点col,转到步骤(5原创 2016-02-24 14:34:59 · 13673 阅读 · 5 评论 -
Java数据结构----队列实现及源码分析
public class FirstLastListQueue { private FirstLastList list = new FirstLastList(); //入列 public void push(Object obj) { list.insertLast(obj); } //出列 public Object pop原创 2016-02-18 15:46:48 · 1126 阅读 · 0 评论 -
Java数据结构----树
一、树树形结构是一类重要的非线性结构。树形结构是结点之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。本章重点讨论二叉树的存储表示及其各种运算,并研究一般原创 2016-02-26 15:18:11 · 1755 阅读 · 0 评论 -
Java数据结构----图的基础知识
1、概念图: 是一种复杂的非线性数据结构。图的二元组定义: 图 G 由两个集合 V 和 E 组成,记为: G=(V, E) 其中: V 是顶点的有穷非空集合, E 是 V 中顶点偶对(称为边)的有穷集。 通常,也将图 G 的顶点集和边集分别记为 V(G) 和 E(G) 。 E(G) 可以是空集。若 E(G) 为空,则图 G 只有顶点而没有边。有向图:原创 2016-02-20 11:50:47 · 7681 阅读 · 0 评论 -
Java数据结构----链表
和数组相比,链表的优势在于长度不受限制,并且在进行插入和删除操作时,不需要移动数据项,故尽管某些操作的时间复杂度与数组想同,实际效率上还是比数组要高很多劣势在于随机访问,无法像数组那样直接通过下标找到特定的数据项 一、单向链表单向链表的结点的数据都是一样,代码为public class Node { Object data; Node next; pu原创 2016-02-18 17:43:42 · 2118 阅读 · 0 评论 -
Java数据结构----栈(Stack)源码分析和用链表简单实现
一、Stack源码分析1.继承结构 栈是数据结构中一种很重要的数据结构类型,因为栈的后进先出功能是实际的开发中有很多的应用场景。Java API中提供了栈(Stacck)的实现。 Stack类继承了Vector类,而Vector类继承了AbstractList抽象类,实现了List接口,Cloneable接口,RandomAcces接口以及Serializable接口,需要指出的Vect原创 2017-06-04 16:11:35 · 2387 阅读 · 0 评论