06 2016 档案

摘要:栈定义 栈(stack):是一种特殊的串行形式的数据结构,其特殊之处在于只允许在链接串行或者阵列的 一端进行插入、删除操作。其实现方式可以通过一维阵列和链接串行来实现。 Tips:简单的来说栈其实也是一种操作受限的线性表。是一种后进先出的数据结构可以使用数 组或者链表的形式来实现。 栈的操作表现形式 阅读全文
posted @ 2016-06-27 09:16 小人物702 阅读(280) 评论(0) 推荐(0)
摘要:定义 队列(queue)是一种特殊的线性表,它只允许在表的前端进行删除,在表的后端进行插入。 进行插入端的称为队尾,进行删除端的称为队头。队列是先进先出原则的。队列的实现同样可以 使用两种方式来实现,一种是数的实现方式,另一种是链表的实现方式。 队列的实现 我们已经知道队列已经有两种方式实现,虽然底 阅读全文
posted @ 2016-06-27 09:10 小人物702 阅读(319) 评论(0) 推荐(0)
摘要:本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散函数和冲突处理方法,可以使得在散列表中查找一个元素的期望时间为O(1)。散列表是普通数组概念的推广,在散列表中,不 阅读全文
posted @ 2016-06-24 07:49 小人物702 阅读(276) 评论(0) 推荐(0)
摘要:java二叉查找树实现: 二叉查找树,上图:比根节点小者在其左边,比根节点大者在其右边。 抽象数据结构,上代码: 一些基本操作实现: 插入(insert): 依次比较根元素,小者放左边,大者放右边: 查找(get): 查找最大,最小元素: 遍历树(中序遍历): 获取前驱(prev)元素: 主要有两种 阅读全文
posted @ 2016-06-16 08:59 小人物702 阅读(247) 评论(0) 推荐(0)
摘要:从《基于比较的排序结构总结 》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到 logN。而是利用对待排数据的某些限定性假设 ,来避免绝大多数的“比较”操作。桶排序就是这样的原理。 阅读全文
posted @ 2016-06-08 15:53 小人物702 阅读(168) 评论(0) 推荐(0)
摘要:稳定排序和不稳定排序 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底 阅读全文
posted @ 2016-06-08 08:50 小人物702 阅读(218) 评论(0) 推荐(0)