数据结构_教程

【第一篇】Java数据结构和算法-简介

duchaochen阅读(578)评论(0)赞(0)

本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。   编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一...

【第二篇】Java数据结构和算法-数组

duchaochen阅读(575)评论(0)赞(0)

上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍。本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要的数据结构,当然每种语言对数组的实现和处...

【第三篇】Java数据结构和算法-冒泡、选择、插入排序算法

duchaochen阅读(552)评论(0)赞(0)

上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法。 1、冒泡排序   这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的时候是比较小的,随着慢慢向水面浮起会...

【第四篇】Java数据结构和算法-队列

duchaochen阅读(558)评论(0)赞(0)

 前面一篇博客我们讲解了并不像数组一样完全作为存储数据功能,而是作为构思算法的辅助工具的数据结构——栈,本篇博客我们介绍另外一个这样的工具——队列。栈是后进先出,而队列刚好相反,是先进先出。 1、队列的基本概念   队列(queue)是一种...

【第五篇】Java数据结构和算法-前缀、中缀、后缀表达式

duchaochen阅读(556)评论(0)赞(0)

前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗?以及数据结构与本篇博客的主题前缀、中缀...

【第六篇】Java数据结构和算法-链表

duchaochen阅读(562)评论(0)赞(0)

前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造成内存的浪费,过小又不能满足数据量的存储...

【第七篇】Java数据结构和算法-递归

duchaochen阅读(552)评论(0)赞(0)

 记得小时候经常讲的一个故事:从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事,故事内容是“从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事,故事内容…...

【第八篇】Java数据结构和算法-高级排序

duchaochen阅读(559)评论(0)赞(0)

春晚好看吗?不存在的!!!   在Java数据结构和算法(三)——冒泡、选择、插入排序算法中我们介绍了三种简单的排序算法,它们的时间复杂度大O表示法都是O(N2),如果数据量少,我们还能忍受,但是数据量大,那么这三种简单的排序所需要的时间则...

【第九篇】Java数据结构和算法-二叉树

duchaochen阅读(560)评论(0)赞(0)

 接下来我们将会介绍另外一种数据结构——树。二叉树是树这种数据结构的一员,后面我们还会介绍红黑树,2-3-4树等数据结构。那么为什么要使用树?它有什么优点?   前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二分...

【第十篇】Java数据结构和算法-红黑树

duchaochen阅读(560)评论(0)赞(0)

上一篇博客我们介绍了二叉搜索树,二叉搜索树对于某个节点而言,其左子树的节点关键值都小于该节点关键值,右子树的所有节点关键值都大于该节点关键值。二叉搜索树作为一种数据结构,其查找、插入和删除操作的时间复杂度都为O(logn),底数为2。但是我...