随笔分类 - 数据结构与算法
摘要:前面介绍了基本的排序算法,排序通常是查找的前奏操作。这篇介绍基本的查找算法。 1、符号表 符号表(Symbol Table)是一种存储键值对的数据结构,它可以将键和值关联起来。支持两种操作:插入,将一组新的键值对插入到表中;查找,根据给定的键得到响应的值。 符号表,有时又称索引,是为了加快查找速度而
阅读全文
摘要:转载请注明出处:http://www.cnblogs.com/wangyingli/p/5994256.html 这节总结一下常见的排序算法。 说明: 由于对对象元素进行排序需要实现Comparable接口,这里为了实现简单,方便测试,仅对整数进行排序(即排序的对象为整型数组)。 1、插入排序 排序
阅读全文
摘要:图是一种比线性表和树更复杂的数据结构,在图中,结点之间的关系是任意的,任意两个数据元素之间都可能相关。图是一种多对多的数据结构。 1、基本概念 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 注意
阅读全文
摘要:这节总结一下优先队列的常用实现方法。 1、基本概念 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (largest in,first out)的行为特征。(百度百科) 抽象数据
阅读全文
摘要:转载请注明出处:http://www.cnblogs.com/wangyingli/p/5933257.html 前面讲到的顺序表、栈和队列都是一对一的线性结构,这节讲一对多的线性结构——树。「一对多」就是指一个元素只能有一个前驱,但可以有多个后继。 一、基本概念 树(tree)是n(n =0)个结
阅读全文
摘要:转载请注明出处:http://www.cnblogs.com/wangyingli/p/5931782.html 上一篇《 "数据结构与算法(二),线性表" 》中介绍了数据结构中线性表的两种不同实现——顺序表与链表。这一篇主要介绍线性表中比较特殊的两种数据结构——栈与队列。首先必须明确一点,栈和队列
阅读全文
摘要:转载请注明出处:http://www.cnblogs.com/wangyingli/p/5928308.html 在上一篇博客《 "数据结构与算法(二),线性表" 》中介绍了线性表的创建、插入、删除等基本操作,这一篇将总结一下链表中最常考的面试题。 目录: 1、从尾到头打印单链表 2、在O(1)时间
阅读全文
摘要:转载请注明出处:http://www.cnblogs.com/wangyingli/p/5928258.html 上一篇《 "数据结构与算法(一),概述" 》中介绍了数据结构的一些基本概念,并分别举例说明了算法的时间复杂度和空间复杂度的求解方法。这一篇主要介绍线性表。 本节内容: 一、基本概念 二、
阅读全文
摘要:转载请注明出处:http://www.cnblogs.com/wangyingli/p/5919297.html 数据结构学了有一年的时间了,但是一直没有好好的总结一下,现在回想起来,感觉好像都不怎么记得了。所以接下来一段时间我将重新学习一下,算是温故而知新了。本着「分享是一种美德」的精神,我将把我
阅读全文