博客专栏  >  综合   >  Java数据结构

Java数据结构

主要介绍数据结构和算法分析的相关知识,包括线性表,栈,队列,串,树,图等等,实现这些的编程语言为Java。

关注
2 已关注
17篇博文
  • Java数据结构-线性表之栈的应用-递归及其应用

    递归函数的定义:把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称做递归函数(递归函数必须有一个结束的条件,以免陷入无穷尽的递归中)。迭代和递归的区别是: (1).迭代使用的是循环结构,...

    2015-08-27 21:12
    556
  • Java数据结构-二叉查找树续以及平衡二叉查找树

    前面一篇文章讲到了二叉查找树的实现,其中的插入操作是使用非递归方法实现的,这里再增加一种递归实现插入的操作,Java代码如下,建议增加到前一篇文章对应的FOBinarySearchTree.java中...

    2015-08-27 21:10
    502
  • Java数据结构-树的应用-二叉查找树

    二叉查找树也叫二叉排序树。对于树中的每个节点X,它的所有左子树中项的值小于X节点中的项,所有右子树中的项的值大于X的项。需要实现的基本操作有:1.包含:判断某个元素是否包含在二叉查找树中,若存在则放回...

    2015-07-29 13:37
    695
  • Java数据结构-串及其应用-KMP模式匹配算法

    串(string)是由零个或多个宇符组成的有限序列,又名叫字符串。定义的解释:   串中的字符数目n称为串的长度,定义中谈到“有限”是指长度n是一个有限的数值。   零个字符的串称为空串(null...

    2015-07-26 18:35
    751
  • Java数据结构-二叉树及其遍历

    二叉树的定义:n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互相不相交的、分别称为根结点的左子树和右子树的二叉树组成。二叉树的特点: 0<=度<=2; 左右子...

    2015-07-23 22:51
    816
  • Java数据结构-树及树的存储结构

    树的定义:n(n>=0)个节点的有限集。 n=0时称为空树。 n!=0时为非空树,有且仅有一个特定的节点——根;n>1时,其它节点可以分为m(m>0)个互不相交的有限集T1~Tm,其中每一个集合本身又...

    2015-07-23 00:06
    1852
  • Java数据结构-线性表之队列

    队列(Queue)的定义:只允许在一端进行插入另一端进行删除操作的线性表。允许插入的一端称为队尾(rear) ,允许删除的一端称为队头(front)。 具有“先进先出”特点。队列也是线性表,所以也存在...

    2015-07-21 09:42
    728
  • Java数据结构-线性表之栈(顺序栈和链栈)

    栈的定义:(特殊的线性表)  仅在表的一端进行插入和删除的线性表。允许插入、删除的这一端称为栈顶,另一端称为栈底。表中没有元素时称为空栈。  被称为后进先出的线性表(Last In First Out...

    2015-07-21 09:34
    653
  • Java数据结构-线性表之链表应用-检测链表是否有环

    如何检测一个链表是否有环?这个是一个出现频率较高的面试题。   如下是一个含有环的链表。 (图片来自http://www.nowamagic.net/librarys/veda/detail/22...

    2015-07-20 12:10
    741
  • Java数据结构-线性表之单链表应用-单链表合并

    问题详细描述:  将递增有序A、B两链表归并成一个按元素值非递增(允许有相同值)有序的链表C。解题思路:  利用A、B两表递增有序的特点,依次取出当前结点进行比较,将当前值较小者摘下,插入到C表的头部...

    2015-07-19 23:23
    463
  • Java数据结构-线性表之单链表应用-重复节点的删除

    整个问题的解题思路如下: 建立指针p,用于遍历链表; 建立指针q,q遍历p后面的结点,并与p数值比较; 如果q与p值相等,则删除q。如果q有后继节点,则将q前驱节点和q后继节点链接起来;否则直接开始下...

    2015-07-19 23:22
    806
  • Java数据结构-线性表之单链表应用-单链表的逆置

    单链表的逆置,就是将现有单链表中的元素的顺序倒置过来。之前提过单链表的整表创建,那里曾说过两种方法:头插法和尾插法; 在我的Java版本的LinkedList中,添加方法使用的是尾插法。 而单链表...

    2015-07-19 23:19
    905
  • Java数据结构-线性表之静态链表

    静态链表的定义: 节点由一个一维数组和一个指针域组成,数组用来存放数据元素,而指针域里面的指针(又称游标)用来指向下一个节点的数组下标。这样的链表称之为静态链表。 链表中的数组第一个和最后一个位置...

    2015-07-19 17:27
    1052
  • Java数据结构-线性表之循环链表

    循环链表的定义:将单链表的尾节点的空指针改为指向头结点的指针,这样的单链表就变成单循环链表了,也叫循环链表。下面摘抄了《大话数据结构》中的一段分析。如下图: 解释: 循环链表里面的头结点和单链表里...

    2015-07-19 17:22
    430
  • Java数据结构-线性表之双向链表

    双向链表的定义:在单链表的基础上,给每个节点增加一个指针域,用来指向该节点的前驱节点,这样形成的链表称之为双向链表。 利用空间换时间。整个双向链表的形式如图所示:下面就摘了《大话数据结构》的插入操作...

    2015-07-19 17:21
    457
  • Java数据结构-线性表之单链表LinkedList

    线性表的链式存储结构,也称之为链式表,链表;链表的存储单元可以连续也可以不连续。 链表中的节点包含数据域和指针域,数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域。注意一个...

    2015-07-18 22:41
    746
  • Java数据结构-线性表之顺序表ArrayList

    线性表的顺序存储结构,也称为顺序表,指用一段连续的存储单元依次存储线性表中的数据元素。根据顺序表的特性,我们用数组来实现顺序表,下面是我通过数组实现的Java版本的顺序表。package com.ph...

    2015-07-18 22:25
    673

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部