
数据结构学习
文章平均质量分 66
mianshui1105
这个作者很懒,什么都没留下…
展开
-
二叉树复习笔记
到目前为止,我们已经介绍了线性数据结构和表数据结构。这些数据结构一般不适用与描述具有层次结构的数据…树树是一个非空的有限元素的集合,其中一个元素为根(root),余下的元素组成t的子数(subtree) 层次中最高层元素为根,其下一级的元素是余下元素所构成的子数的根二叉树定义 : 二叉树(binary tree) t 是有限个元素的集合(可以为空)。当二叉树非空时,其中有一个称为根的元素,余下的原创 2016-08-03 11:31:45 · 577 阅读 · 0 评论 -
JAVA拾遗 - 优先队列的探讨以及其在KNN算法中的应用
这几天导师安排写一个微博签到数据依据地理坐标的分类,所以有一段时间没有更新博客了,不过正好也在这次代码的写作中学习了一些新的姿势,写这篇博客跟大家分享下心得。优先队列定义所谓的优先队列,就是在普通队列的基础上,对于每个点维护一个“优先”值,这个优先值决定了优先队列的出队顺序。优先队列内的元素不能够是空的JAVA中的优先队列在JAVA的优先队列(java.util.priorityQueue)内部维原创 2016-08-28 11:40:32 · 675 阅读 · 0 评论 -
循环队列拾遗-使用数组实现循环队列
循环队列为充分利用向量空间,克服”假溢出”现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。这种循环队列可以以单链表的方式来在实际编程应用中来实现。循环队列的问题循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。因此,无法通过条件front==rear来判别队列原创 2016-08-08 23:52:35 · 5982 阅读 · 0 评论 -
JAVA拾遗 - 使用Java实现数列栈和链表栈
最近有点忙,没来得及更新博客...正好在看Alg PartI 的公开课,就发一批课堂练习凑个数吧...抽象栈主要有三个功能,我们可以用一个抽象类去规定他package StackQueueBag;/** * Created by coco1 on 2016/9/12. */public abstract class AbstructStack { public abstract原创 2016-09-12 15:06:50 · 374 阅读 · 0 评论 -
JAVA拾遗 - 并查集算法的实现与改进
并查集并查集所需要实现的主要有一下几个功能1.建立新的集合2.查找某个元素属于哪个集合3.合并两个集合我们希望它的算法复杂度达到O(1),那么具体应该如何实现呢?方法UF(int n) //建立并查集int count() //返回并查集集合数boolean connected(int a, int b) //测试两个元素是否在同一个集合内find(int a) //返回某个元素属于哪原创 2016-08-16 12:07:03 · 619 阅读 · 0 评论 -
JAVA拾遗 - 红黑树 Part I
写在最前红黑树,应该说是我们着一些年轻程序员最害怕的玩意了,每当宿舍吹比算法的时候,聊到树,必然绕不开红黑树这个乖乖东西。为了达到二分查找的最佳性能,我们强调生成的二分查找树必须是最“平衡”的,即所有从root点开始往下探的路径长度,总是相同的。可是总有的时候二分查找树是不会平衡的,多了一个少了一个都会影响其的平衡性。为了防止二分查找树出现最坏的情况,也为了提升查找的效率,这里提出个概念,就是所谓的原创 2016-11-10 21:01:27 · 428 阅读 · 0 评论