E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【JAVA数据结构】
Java数据结构
--二叉查找树
BinaryNode类/** *Createdbyrooton16-3-5. */ publicclassBinaryNodeimplementsParent{ privateEitem; privateBinaryNodeleft; privateBinaryNoderight; publicBinaryNode(){ this(null); } publicBinaryNode(Eitem){
Salaku
·
2016-03-05 09:00
Java数据结构
--有序表
Predecessorinterface/** *Createdbyrooton16-3-4. */ publicinterfacePredecessor{ publicListNodegetNext(); publicvoidsetNext(ListNodenode); }ListNodepublicclassListNodeimplementsPredecessor{//链表节点 Eitem;
Salaku
·
2016-03-04 16:00
Java数据结构
--简单二叉树
BinaryTree类/** *Createdbyrooton16-3-3. */ publicclassBinaryTree{ privateEitem;//节点字段 privateBinaryTreeleft;//左分支 privateBinaryTreeright;//右分支 publicEgetItem(){//获得字段的方法 returnitem; } publicBinaryTree(
Salaku
·
2016-03-03 13:00
Java数据结构
----树--红黑树
1、概念红黑树(Red-BlackTree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由RudolfBayer发明的,他称之为"对称二叉B树",它现代的名字是在LeoJ.Guibas和RobertSedgewick于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在O(logn
oChangWen
·
2016-02-28 10:00
java
数据结构
二叉树
红黑树
Java数据结构
----树--平衡二叉树
1、基础知识平衡二叉树(BalancedBinaryTree)又被称为AVL树(有别于AVL算法),且具有以下性质:1.它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。2.其高度一般都良好地维持在O(log2n),大大降低了操作的时间复杂度。3.平衡二叉树的常用算法有红黑树、AVL、Treap等。4.最小二叉平衡树的节点的公式如下F(n)=F(n-1)+
oChangWen
·
2016-02-28 10:00
java
数据结构
二叉树
平衡二叉树
Java数据结构
----树--二叉查找(搜索或排序)树BST
二叉查找(搜索)树(BinarySearchTree)又称二叉排序树(BinarySortTree),是基于二叉树,BST具有下列性质:1、若左子树不空,则其左子树上的所有结点的值均小于根结点的值;2、若右子树不空,则其右子树上的所有结点的值均大于根结点的值;3、左、右子树也分别为二叉查找树。 结点类publicclassBinaryNode{ Integerdata;
oChangWen
·
2016-02-26 17:00
java
数据结构
搜索
二叉树
二叉查找树
Java数据结构
----树--堆
1、堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足Key[i]=1;i--){ //交换堆顶和最后一个元素 swap(array,0,i); max
oChangWen
·
2016-02-26 17:00
java
数据结构
树
堆
堆排序
Java数据结构
----树
一、树树形结构是一类重要的非线性结构。树形结构是结点之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。本章重点讨论二叉树的存储表示及其各种运算,并研究一般树和
oChangWen
·
2016-02-26 15:00
java
数据结构
二叉树
中序
前序
Java数据结构
--链表
publicinterfacePredecessor{//定义接口用于实现多态 publicListNodegetNext(); publicvoidsetNext(ListNodenext); }/** *Createdbyrooton16-2-24. */ publicclassListNodeimplementsPredecessor{ privateEitem;//泛型元素 private
Salaku
·
2016-02-24 15:00
Java数据结构
----图--最短路径解法Dijkstra算法和Floyd算法
最短路径—Dijkstra算法和Floyd算法1、Dijkstra算法1.1、定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。
oChangWen
·
2016-02-24 15:00
java
数据结构
图
dijkstra
floyd
Java数据结构
----图--深度优先遍历BFS和广度优先遍历DFS
一、图的遍历广度优先搜索BFS(Breadth-firstsearch)算法思想:(1)顶点v入队列。(2)当队列非空时则继续执行,否则算法结束。(3)出队列取得队头顶点v;访问顶点v并标记顶点v已被访问。(4)查找顶点v的第一个邻接顶点col。(5)若v的邻接顶点col未被访问过的,则col入队列。(6)继续查找顶点v的另一个新的邻接顶点col,转到步骤(5)。直到顶点v的所有未被访问过的邻接点
oChangWen
·
2016-02-24 14:00
java
数据结构
图
DFS
bfs
Java数据结构
--链表节点
java中的指针publicclassTest{ publicstaticvoidmain(String[]args){ Aa=newA();//a是一个对象 Ab=a;Ac=a;//b和c都是指向同一个对象a的指针 b.a=20;//b是指针这里其实修改了a.a System.out.println(c.a);//c也是指向a的指针//所以输出20 } } classA{ inta=10; }利
Salaku
·
2016-02-23 21:00
Java数据结构
----图的基础知识
1、概念图:是一种复杂的非线性数据结构。图的二元组定义: 图G由两个集合V和E组成,记为: G=(V,E) 其中:V是顶点的有穷非空集合, E是V中顶点偶对(称为边)的有穷集。 通常,也将图G的顶点集和边集分别记为V(G)和E(G)。E(G)可以是空集。若E(G)为空,则图G只有顶点而没有边。有向图:若图G中的每条边都是有方向的,则称G为有向图(Digraph)。无向图:若图G中的每条边都是没有方
oChangWen
·
2016-02-20 11:00
java
数据结构
图
Java数据结构
----优先队列
PriorityQueue是从JDK1.5开始提供的新的数据结构接口,它是一种基于优先级堆的极大优先级队列。1、优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。2、如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是数字默认是小的在队列头,字符串则按字典序排列(参阅Comparable),也可以根据Comparator来指定,这取决于使
oChangWen
·
2016-02-18 22:00
java
数据结构
链表
数组
队形
Java数据结构
----链表
用C实现链表是使用了指针,但是JAVA并没有指针这个名词。指针究竟是什么?链表的指针又代表了什么含义?这就是解题的具体思路。在java中,用引用来代替指针的功能,不过区别:就是指针在指向目标地址的同时本身也占有内存,而引用就是单纯的指向一块内存。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结
oChangWen
·
2016-02-18 17:00
java
数据结构
单链表
Java数据结构
----队列实现及源码分析
1、链表实现队列:相关基础知识请看这里http://blog.csdn.net/ochangwen/article/details/50686855队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之
oChangWen
·
2016-02-18 15:00
java
数据结构
队列
Java数据结构
----栈(Stack)源码分析和个人简单实现
一、Stack源码分析1.继承结构栈是数据结构中一种很重要的数据结构类型,因为栈的后进先出功能是实际的开发中有很多的应用场景。JavaAPI中提供了栈(Stacck)的实现。 Stack类继承了Vector类,而Vector类继承了AbstractList抽象类,实现了List接口,Cloneable接口,RandomAcces接口以及Serializable接口,需要指出的Vector内部还有两
oChangWen
·
2016-02-17 23:00
java
数据结构
栈
数据结构
Java数据结构
Java工具包提供了强大的数据结构。
三三三
·
2016-02-13 01:00
线性表 之 集合的合并 (数据结构java语言版)
线性表之集合的合并一、程序:二、难点分析:1.还是在熟悉
Java数据结构
的一些API吧...
u010823625
·
2016-01-30 18:00
【
Java数据结构
】栈
栈栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。一个char的栈模型类:packagecn.deu; publiccla
u013517797
·
2016-01-19 10:00
栈
pop
单词逆序
【
Java数据结构
】线性表
线性表线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储),但是把最后一个数据元素的尾指针指向了哨位结点)。 我们说“线性”和“非线性”,只在逻辑层次上讨论,而不考虑存储层次,所以双向链表
u013517797
·
2016-01-14 21:00
数据结构
数据
存储
指针
线性表
【Java】
Java数据结构
和算法(二)——栈和队列
栈栈只允许访问一个数据项:即最后插入的数据项。移除这个数据项后才能访问到倒数第二个插入的数据项。栈操作所耗的时间不依赖于栈中数据项的个数,栈不需要比较和移动操作,数据项入栈和出栈的时间复杂度都为常数O(1)。队列队列第一个插入的数据项会最先被移除(先进先出,FIFO)。队列中插入数据项和移除数据项的时间复杂度均为O(1)。优先级队列优先级队列有一个队头和一个队尾,并且也是从队头移除数据项。不过在优
shandianke
·
2016-01-10 21:00
【Java】
Java数据结构
和算法(一)
参考文献:
Java数据结构
和算法(第二版)RobertLafore著计晓云译
shandianke
·
2016-01-09 18:00
【
Java数据结构
】二叉树
核心:树中每个节点最多只能有两个子节点(t>=0&&t<=2)下面实现的是一个二叉排序树(左孩子小于父节点,右孩子大于父节点)1.插入节点核心思想:(1)如果不存在节点,则直接插入。(2)从根节点开始查找一个相应的节点,即新节点的父节点,当父节点找到后,根据新节点的值来确定新节点是连接到左子节点还是右子节点。2.查找节点核心思想:从根节点开始查找,如果查找到节点值比父节点值要小,则查找其左子树,否
u013517797
·
2016-01-09 13:00
java
数据结构
二叉树
【
Java数据结构
】排序
1.冒泡排序冒泡排序核心思想:比较两个元素,如果前一个比后一个大则进行交换。经过对每个元素的比较,最后将最大的元素设置成最后一个元素。重复该操作,最后形成从小到大的排序。for(inti=0;iarr[j+1]) { t=arr[j]; arr[j]=arr[j+1]; arr[j+1]=t; } } }深究:publicstaticvoidmain(String[]args){ //不标准的冒泡
u013517797
·
2016-01-05 10:00
数据结构
插入排序
归并排序
快速排序
选择排序
【
Java数据结构
】链表
1.链接点链接点核心思想:链接点中包含一个数据域和一个指针域。其中数据域用来包装数据,而指针域用来指向下一个链接点。链接点模型:packagecn.deu; publicclassLink{ //数据域 privatelongdata; //指针域 privateLinknext; publicLink(longdata){ this.data=data; } publiclonggetD
u013517797
·
2016-01-01 13:00
数据结构
链表
测试
指针
java数据结构
--二叉树,递归遍历,非递归遍历,层次遍历
1.为什么要引入树 线性结构的特点是插入和删除速度慢,查找速度快。 链式结构的特点是查找速度慢,插入和删除速度快。 树型结构综合了线性结构和链式结构优点,查找,删除,插入速度都快2.二叉树的构造 构造二叉树的节点/** *二叉树的节点 *Title:Node *Description: *Company: *@author夏杰 *@date2015年12月23日下午10:51:24 *@v
ZuoAnYinXiang
·
2015-12-23 23:00
Java数据结构
漫谈-Vector
List除了ArrayList和LinkedList之外,还有一个最常用的就是Vector。Vector在中文的翻译是矢量,向量,所以大家喜欢把Vector叫做矢量数组,或者向量数组。其实就底层实现来说Vector与ArrayList的实现大同小异,都是使用数组作为底层的存储器,在上面进行了一些列的操作封装,而且都实现了List的数据接口。最主要的区别就是Vector的大部分操作增加了线程同步的功
yakovchang
·
2015-12-16 17:00
Java数据结构
——LinkedList源码简介
LinkedList是Java中的数据结构之一,即链表。本篇文章将从源码角度简单介绍LinkedList的基本实现原理。在阅读下面内容之前,请确保你已经了解链表的基本属性与特点,在此不会再做详细解释。本文只介绍链表的核心操作方法,如addremovegetset,其他一些不太常用的方法暂时跳过。ArrayList之前已经介绍过:http://blog.csdn.net/daydreary/arti
daydreary
·
2015-12-16 11:15
Java数据结构
漫谈-Stack
Stack(栈)是一种比较典型的数据结构,其元素满足后进先出(LIFO)的特点。Java中Stack的实现继承自Vector,所以其天然的具有了一些Vector的特点,所以栈也是线程安全的。classStackextendsVector{事实上,除了继承自Vector的那些方法之外,Stack只提供了5个方法:publicEpush(Eitem){ addElement(item); re
yakovchang
·
2015-12-15 16:00
【
Java数据结构
】队列
队列先进先出的线性表,它只允许在一端(队尾)进行插入操作,在另一端(队首)进行删除操作。与栈的插入和删除都在栈顶进行不同。1.普通队列实例代码:存储类型为long的队列packagecn.deu; publicclassQueue{ //队列组合 privatelong[]arr; //数组最大值 privateintMaxSize=0; //数组有效值 privateintnum=0; //队
u013517797
·
2015-12-14 22:00
java
数据结构
队列
循环队列
优先级队列
java数据结构
--队列
1.队列的定义:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。(1)允许删除的一端称为队头(Front)。(2)允许插入的一端称为队尾(Rear)。(3)当队列中没有元素时称为空队列。(4)队列亦称作先进先出(FirstInFirstOut)的线性表,简称为FIFO表。 队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾,每次离开的成员总是队列头上的(
ZuoAnYinXiang
·
2015-12-12 11:00
java数据结构
--栈
1.栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 (1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom)。 (2)当表中没有元素时称为空栈。 (3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表。 栈的修改是按后进先出的原则进行。每次删除(退栈)的总是
ZuoAnYinXiang
·
2015-12-11 22:00
Java数据结构
漫谈-LinkedList
同样是List的数据结构,LinkedList是使用了前后指针,指明节点的方式来表示链表的,这与之前介绍的ArrayListhttp://www.cnblogs.com/yakovchang/p/java_arraylist.html中使用数组的方式是截然不同的。LinkedList中的存储节点被称作节点(Node),一个节点的定义如下所示:privatestaticclassNode{ Eit
yakovchang
·
2015-12-11 11:00
【
Java数据结构
】递归
核心思想:在方法中调用本身这个方法。例子:packageen.edu.Test; publicclassTestDiGui{ publicstaticvoidmain(String[]args){ TestDiGui.test(0); } publicstaticvoidtest(inti){ if(i<5){ System.out.println("HelloWorld!"+i); tes
u013517797
·
2015-12-11 11:00
java
数据结构
递归
Java数据结构
漫谈-ArrayList
ArrayList是一个基于数组实现的链表(List),这一点可以从源码中看出:transientObject[]elementData;//non-privatetosimplifynestedclassaccess可以看出ArrayList的内部是给予数组来处理的。从ArrayList中查找一个元素的index,其时间复杂度是o(n),其源码如下所示:publicintindexOf(Obje
yakovchang
·
2015-12-10 22:00
【
Java数据结构
】Fibonacci数列
核心:Fibonacci数列中的第1、2项为1,第n项由n-1项加n-2项得到测试代码:packageen.edu.Test; publicclassTestFibonacci{ //自己的方法 privatestaticintarr[]=newint[9999+1]; static{ arr[1]=1;arr[2]=1; for(inti=3;i<10000;i++){ arr[i]=arr[
u013517797
·
2015-12-10 12:00
java
数据结构
01_Java 数据结构
Java数据结构
Java工具包提供了强大的数据结构。
a4471174
·
2015-12-07 22:00
java数据结构
系列之——数组(1)
import javax.management.RuntimeErrorException; public class MyArray { private long array[]; private int elements;//用于记录数组中实际数据的个数 public MyArray(){ array=new long[50];//数组默认长度为50; } public
·
2015-11-13 17:07
java
【
Java数据结构
】
Java数据结构
之链表反转
我们都知道用C可以很简单的实现单链表反转,今天来学习下,在Java中如何实现链表反转。 思路很简单,定义一个类,这个类分成2块,一块是表示自身的标志,另外一个存储指向下一个元素的引用。通过互换相邻两个节点的引用来达到链表反转的效果。上代码: package com.withiter.test; public class ReverseList { /** *
·
2015-11-13 08:09
java
java数据结构
表的学习
1、表ADT(abstract data type) 1)数组 2)链表 2、java Collections API中的表(位于java.util) 1)Collection接口 Collection接口扩展了iterable接口,实现Iterable接口的那些类可以有增强的for循环,该循
·
2015-11-13 02:43
java
Java数据结构
-HashMap
一直以来似乎都有一个错觉,认为map跟其他的集合类一样继承自Collection,其实不然,Map和Collection在结构层次上是没有任何关系的,通过查看源码可以发现map所有操作都是基于key-value对,而不是单独的元素。 下面以HashMap为例子,深入对Map的实现机制进行了解,在这个过程中,请打开jdk源码。 Hash算法 HashMap使用Hash算法,
·
2015-11-13 02:18
HashMap
java数据结构
一、List接口,有序的Collection接口,可以精确地控制每一个元素插入的位置,同意有同样的元素 1.链表,LinkedList实现了List接口,同意null元素,提供了get()、remove()、insert()方法,没有同步方法 public void add() { LinkedList List = new LinkedList(); List.add("link
·
2015-11-12 20:43
java
noob(java高级)
1、
java数据结构
, 枚举(Enumeration)已过时 位集合(BitSet) 向量(Vector),向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化。
·
2015-11-12 16:48
java
JAVA数据结构
系列 栈
java数据结构
系列之栈 手写栈 1.利用链表做出栈,因为栈的特殊,插入删除操作都是在栈顶进行,链表不用担心栈的长度,所以链表再合适不过了,非常好用,不过它在插入和删除元素的时候,速度比数组栈慢,因为它要维护自己的指针
·
2015-11-12 11:27
java
【
Java数据结构
系列】递归
递归是函数调用自身的一种特殊的编程技术,其应用主要在以下几个方面: 阶乘 在 java 当中的基本形式是:Public void mothed(int n){//当满足某条件时: Mothed(n‐1) ; } 递归二分查找 Java 二分查找实现,欢迎大家提出交流意见.
·
2015-11-09 12:27
java
【
Java数据结构
系列】哈希表
一般的线性表、树中,记录在结构中的相对位置是随机的即和记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上,查找的效率与比较次数密切相关。理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一确定的对应关系 f,使每个关键字和结构中一个唯一的存储位置相对应。因而查找时,只需根据这个对应关系 f
·
2015-11-09 12:27
java
【
Java数据结构
系列】链表
1. 链结点 在链表中,每个数据项都被包含在‘点“中,一个点是某个类的对象,这个类可认叫做LINK。因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达链结点。每个 LINK 对象中都包含一个对下一个点引用的字段(通常叫做 next)但是本身的对象中有一个字段指向对第一个链结点的引用 单链表 用一组地址任意的存储单元存放线性表中的数据元素。 以元素
·
2015-11-09 12:26
java
【
Java数据结构
系列】栈和队列
栈的定义和基本运算 1、栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 (1)通常称插入、删除的这一端为栈顶(Top) ,另一端称为栈底(Bottom) 。 (2)当表中没有元素时称为空栈。 (3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表。 栈的修改
·
2015-11-09 12:25
java
【
Java数据结构
】 数组和简单排序
通过
Java数据结构
系列博文,整理
Java数据结构
和常见算法实现。数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可被定义为任何类型,可以是一维或多维。
·
2015-11-09 12:24
java
上一页
43
44
45
46
47
48
49
50
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他