树:树形结构的特点是一个节点可有多个直接后继,是一种常用的非线性结构。 二叉树:结合了有序数组和链表的优点,在树中查找数据和在有序数组中查找一样快,增删数据和在链表中一样快。 插入操作时,二叉树从根节点开始,比父节点大的往左边插入,比父节点小的往右边插入 下面是链表实现二叉树: Node.java ...
分类:
编程语言 时间:
2017-11-26 23:02:17
阅读次数:
236
队列的数据项都是队列尾插入,然后移向队列头,并从队列头删除或者获取。 队列需要一个头指针(front)和尾指针(rear),头指针会随着出队变动,rear会随着入队变动 两种常用队列 :线性队列,循环队列。 线性队列和循环队列的区别是:线性队列会产生假溢出,即头指针和尾指针都到了size大小 数组实 ...
分类:
编程语言 时间:
2017-11-26 22:59:14
阅读次数:
334
双向链表与单链表区别在于他多了一个链域,用来存放前驱节点。 基本方法实现: 新增节点: 当前节点的next为新增节点,新增节点的next为当前节点的next.next新增节点的prior为当前结点,当前结点的prior为新增节点 删除节点: 设置删除节点的上一个节点为当前结点。如果当前结点的下下个节 ...
分类:
编程语言 时间:
2017-11-26 21:51:11
阅读次数:
124
概念:链表可以使一种有序或无序的列表,内容通常存储在内存中分散的位置上,有节点组成,每一个节点的结构都相同,节点分为数据域和链域,数据域存放内容,链域存放的是下一个节点指针。 基本方法实现: 新增节点: 删除节点: 打印节点: 数组实现单链表: 创建节点类:Node.java 创建链表类:Link. ...
分类:
编程语言 时间:
2017-11-26 20:27:29
阅读次数:
208
Java数据结构 java包含了强大的数据结构,在java中主要包含以下几种接口和类 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(Hashtable) 属性(Properties) 枚举(Enumeration ...
分类:
编程语言 时间:
2017-11-25 13:08:35
阅读次数:
145
上次我们学习了环形链表的数据结构,那么接下来我们来一起看看下面的问题, 判断一个单向链表是否是环形链表? 看到这个问题,有人就提出了进行遍历链表,记住第一元素,当我们遍历后元素再次出现则是说明是环形链表,如果没有这是一个单向非环形链表。 我们来分析下上述的解决方法,我们分析这个程序的时间复杂度则是O ...
分类:
编程语言 时间:
2017-11-14 11:17:00
阅读次数:
121
查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。 ...
分类:
编程语言 时间:
2017-11-13 18:21:20
阅读次数:
194
前言:周末闲来无事,在七月在线上看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家。什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔记吧。 一、字符串 java:String内置类型,不可更改。(如需更改可考虑:Stri ...
分类:
编程语言 时间:
2017-10-23 01:06:57
阅读次数:
289
希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能。这样可以让一个元素可以一次性地朝最终位置前进一大步。然后算法再取越来越小的步长进行排序,算法的最后一步就是普通的插入排序,但是到了这步,需排序的数据几乎是已排好的了(此时插入排序较快)。 假设有一个很小的数据在一个已按升序排好序的数组的末 ...
分类:
编程语言 时间:
2017-10-16 23:23:56
阅读次数:
259
前言:排序在算法中的地位自然不必多说,在许多工作中都用到了排序,就像学生成绩统计名次、商城商品销量排名、新闻的搜索热度排名等等。也正因为排序的应用范围如此之广,引起了许多人深入研究它的兴趣,直至今天,排序算法已经出现了很多种。本篇博文主要介绍常见的八种排序算法,总得来说,不同的排序算法在不同的场景下 ...
分类:
编程语言 时间:
2017-10-06 00:04:04
阅读次数:
294