摘要: 1、栈-概念 栈是一种用于存储数据的简单数据结构,类似链表或者顺序表(统称线性表),栈与线性表的最大区别是数据的存取的操作,我们可以这样认为栈(Stack)是一种特殊的线性表,其插入和删除操作只允许在线性表的一端进行,一般而言,把允许操作的一端称为栈顶(Top),不可操作的一端称为栈底(Bottom 阅读全文
posted @ 2018-09-02 23:10 jkqiang 阅读(346) 评论(0) 推荐(1) 编辑
摘要: 前面我们讲解了并不像数组一样完全作为存储数据功能,而是作为构思算法的辅助工具的数据结构——栈,本文我们介绍另外一个这样的工具——队列。栈是后进先出,而队列刚好相反,是先进先出。 1、队列的基本概念 队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表 阅读全文
posted @ 2018-09-02 21:30 jkqiang 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 前面讲解了数组,数组更多的是用来进行数据的存储,我们期望的数据结构是插入、删除和查找性能都比较好。对于无序数组,插入快,但是删除和查找都很慢,为了解决这些问题,后面我们会讲解比如二叉树、哈希表的数据结构。 而本篇博客讲解的数据结构和算法更多是用作程序员的工具,它们作为构思算法的辅助工具,而不是完全的 阅读全文
posted @ 2018-09-02 18:40 jkqiang 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 1、冒泡排序 该名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的时候是比较小的,随着慢慢向水面浮起会逐渐增大。 冒泡算法的运作规律如下: ①、比较相邻元素。如果第一个比第二个大,就交换他们两个。 ②、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数( 阅读全文
posted @ 2018-09-02 18:04 jkqiang 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 数组——数据结构的鼻祖,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要的数据结构,当然每种语言对数组的实现和处理也不相同,但是本质是都是用来存放数据的的结构,这里我们以Java语言为例,来详细介绍Java语言中数组的用法。 1、Java数组介绍 在Java中,数组是用来存放同一 阅读全文
posted @ 2018-09-02 17:14 jkqiang 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 1、数据结构 1.1、数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 一、数据结构的基本功能 ①、如何插入一条新数据项 ②、如何寻找某一特定数据项 ③ 阅读全文
posted @ 2018-09-02 16:28 jkqiang 阅读(212) 评论(0) 推荐(0) 编辑