- 博客(17)
- 资源 (23)
- 收藏
- 关注
原创 数据结构(Java)——优先队列和堆
堆就是具有两个附加属性的二叉树。 【1】它是一棵完全树; 【2】对每一结点,它小于和等于其左孩子和右孩子。 上述定义描述的是最小堆。一个堆也可以是最大堆,其中结点大于或者小于它的左右孩子。
2015-11-26 16:23:43 376
原创 数据结构(Java)——二叉查找树
二叉查找树是带有附加属性的二叉树,即对树中的每个结点,其做孩子都要小于父结点,而父结点又要小于等于其右孩子。二叉查找数是对二叉树定义的扩展,前面的[二叉树的实现](http://blog.csdn.net/zhangyifei521/article/details/49967121) 中我们的对二叉树做了一个简单的实现,其中使用BinaryTreeNode类来表示树中每个结点。每个BinaryTreeNode对象要
2015-11-24 11:13:46 356
原创 数据结构(Java)——树的入门学习
平衡树:对平衡的定义有很多种,粗略的来说,如果树的叶子都位于同一层或者至少彼此相差不超过一层,那么就称之为平衡的。完全树:如果某树树平衡的,且底层的所有叶子都位于树的左边,则认为该树是完全的。满树:如果一棵n元树的所有叶子都位于同一层,而且每一个结点要么是叶子,要么就正好拥有n个孩子,则称此树是满的。
2015-11-21 19:50:21 476
原创 数据结构(Java)——查找和排序(5)
低头要有勇气,抬头要有底气。堆排序的增加理解: 由于前面对于堆排序有些疑问存在,因此今天我再一次研究了一下堆排序的算法和设计思想。1.构建大根堆的算法设计根据二叉树的性质我们可以得非叶节点最大序号值为size/2 。 因此我们根据一个数据构建大根堆的算法就是: 【1】首先将当前的数组作为一个完全二叉树保存 【2】从最后一个非叶节点进行构建大顶堆 【3】循环 -》 利用判定和递归进行构建大
2015-11-21 15:52:24 339
原创 数据结构(Java)——查找和排序(3)
一些高级排序算法的Java实现:快速排序和归并排序【1】快速排序的算法是首先执行找中心点,中间大两边小的分割开,然后不断的将列表规模变小,小的在左,大的在右的原则一直不变。这样慢慢的随着列表越变越小就能够实现全部有序。【2】归并排序的算法是首先将列表递归的一份为二,知道每一个子列表只有一个元素,然后在就近将两个子列表有序合并,列表规模慢慢扩大,这就实现了局部有序到整体有序的过渡。
2015-11-19 20:08:09 524 1
原创 数据结构(Java)——查找和排序(1)
查找是这样一个过程,即在某个项目组中寻找某一指定目标元素,或者确定该组中并不存在该目标元素。 对其进行查找的项目的组有时也成为查找池。 两种常见的查找方式:线性查找和二分查找。 为了能够查找某一对象,我们就必须将一个对象跟另一个对象进行比较。我们对这些算法的实现就是对某个Comparable对象的数组进行查找。因此,所涉及的元素实现了Comparable接口且彼此是可比较的。
2015-11-19 09:58:20 919 1
原创 数据结构(Java)——递归
递归是一种功能强大的编程技术,能为某些问题提供优雅的解决方案。在各种数据结构的实现以及数据的查找和排序的处理中,递归特别有用。 递归是一种编程技术,它利用一个方法来调用自身来满足整个作用。能够递归编程取决于能否递归的思考。 任何递归定义都必须有一个非递归部分,这个非递归部分称为基本情形,它使得递归最终会终止。 数学和数学公式常常会递归的表示。深刻理解递归,对于编程和解决一些逻辑上直接求解十分复杂的问题十分有效。
2015-11-18 20:15:04 565
原创 数据结构(Java)——迭代器和列表的实例
Java集合API提供的列表类主要是支持索引列表。在一定程度上,这些类同无序列表是重叠的。JavaAPI中没有实现事实上的有序列表。【1】ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。【2】对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。【3】对于新增和删除操作add和remove,LinedList比较
2015-11-17 21:43:15 638
原创 数据结构(Java)——迭代器Iterator
迭代器是一个对象,允许用户每次获得和使用集合中的一个元素,它与某个集合一同使用,但是它是一个单独的对象。迭代器是有助于实现某个集合的一种机制。 在java中,迭代器提供了一种标准方法,可以一次访问集合中的每一个元素,这是一种通用的操作。迭代器是一个对象,允许用户每次获取和使用集合中的一个元素。
2015-11-17 17:12:45 658
原创 数据结构(Java)——列表的实现
链表是一种实现策略,使用引用在对象之间创建链接。列表集合 是一种概念性的表示方法,其思想是使事物以线性列表的方式进行组织,就像栈和队列一样,列表也可以使用数组和链表来实现。列表集合没有内在的容量大小,它可以随着需要而增大。列表集合更一般化,可以在列表的中间和末端添加和删除元素。列表可以分为有序列表、无序列表、索引列表。
2015-11-17 14:01:17 1142
原创 数据结构(Java)——队列的实例
A collection designed for holding elements prior to processing. Besides basic Collection operations, queues provide additional insertion, extraction, and inspection operations. Each of these methods exists in t
2015-11-17 09:59:11 490
原创 数据结构(Java)——队列的实现
队列是一种线性集合,其元素从一端加入,从另一端删除。因此队列是按照先进先出方式处理的,从队列中删除元素的次序与往队列里放置元素的的次序是一样的。由于队列是一种线性集合,因此可以像处理栈一样,把队列实现成一种LinearNode对象的链表。
2015-11-16 19:19:07 911
原创 数据结构(Java)——栈的实现总结
栈是一种线性集合,其元素的添加和删除都是在同一端进行的。我们称栈是LIFO的方式处理的。栈的基本实现方式有两种,数组实现和链表实现。
2015-11-14 19:02:29 522
《Visual C/C++图形图像与游戏编程典型实例解析》-源代码-4082
2011-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人