[图解数据结构之Java实现](0) --- 概要分析和目录分类

一. 写此系列文章缘由

之所以, 打算用Java语言再把基础的数据结构实现一遍, 原因有以下几点:

  • 第一: 我们在学校里学的数据结构大多数都是C语言实现的, 作为要学习和从事Java开发的程序员, 这对Java基础也是一次再学习和提升;
  • 第二: 在课堂上所学, 大多数是以概念为主, 导致动手编程的能力严重下降, 理解如何实现和如何编码, 都是同等重要的, 毕竟学习的内容最终还是要学以致用的!
  • 第三: 基本的数据结构是后续学习算法的基石, 比如C++中的STL和Java中常用集合框架, 底层实现都是这些数据结构中的知识;
  • 第四: 在未来的求职当中, 笔试和面试都少不了数据结构的问题.

哈哈, 废话不多说了, 总之, 一句话 — 数据结构, 包括算法设计, 这对从事软件开发的人员来说, 是非常非常重要的!

二. 相关概念表述

1. 数据结构的定义

来自维基百科的定义

计算机科学中,数据结构(英语:data structure)是计算机中存储、组织数据的方式。

来自数据结构(C语言版, 严蔚敏著)此书的定义

数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合.

简单而言, 因为计算机能快速处理大量的数据, 而如何存储数据就是一个问题, 数据结构就是用来解决这个问题的.

2. 逻辑结构和存储结构的对比

在数据结构中, 有两个概念非常重要, 就是逻辑结构和存储结构. 可能你平时都在用, 但具体的概念不清楚.

逻辑结构: 数据元素之间的逻辑结构.
存储结构: (也称物理结构)数据结构在计算机中的表示.
简单而言, 比如最常用的栈, 是后进先出的结构, 这就是一个逻辑结构; 它存储在计算机中, 即可以用数组实现, 也可以用链表来实现, 所以, 用链表实现的栈, 其中, 这个链表就是一个存储结构.

三. 基本数据结构的分类和列举

根据数据元素之间关系的不同特性, 通常分为三种基本结构:

  • 线性结构 (一对一)
  • 树形结构 (一对多)
  • 图状结构 (多对多)

常见的数据结构列举:

  • 数组 (Array)
  • 栈 (Stack)
  • 队列(Queue)
  • 链表(Linked List)
  • 树(Tree)
  • 图(Graph)
  • 堆(Heap)
  • 散列表(Hash)

四. 总结

因为此文只是大概介绍我接下来要写的内容, 所以没有编码的部分! 个人博客主页

最后, 非常欢迎各位小伙伴评论和指点我的文章, 如果您觉得写得还不太差劲或者对您有一丁点的帮助, 麻烦动个小手点个赞, 好人萌萌哒, 也很感谢您耐心认真地看完!

本文写于 2017.05.10 13:00

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内含资源如下: 1.基本数据结构 1.1.Array ........... 动态数组 1.2.LinkedList ... 链表 1.3.BST .............. 二分搜索树 1.4.MapBST ..... 二分搜索树(用于实现映射) 1.5.AVLTree ...... AVL树 2.接口 2.1.Queue ........... 队列接口 2.2.Stack .............. 栈接口 2.3.Set .................. 集合接口 2.4.Map ............... 映射接口 2.5.Merger .......... 自定义函数接口 2.6.UnionFind ..... 并查集接口 3.高级数据结构 3.1.ArrayQueue .......................... 队列_基于动态数组实现 3.2.LinkedListQueue .................. 队列__基于链表实现 3.3.LoopQueue ........................... 循环队列_基于动态数组实现 3.4.PriorityQueue ....................... 优先队列_基于最大二叉堆实现 3.5.ArrayPriorityQueue ............. 优先队列_基于动态数组实现 3.6.LinkedListPriorityQueue ..... 优先队列_基于链表实现 3.7.ArrayStack ............................. 栈_基于动态数组实现 3.8.LinkedListStack ..................... 栈_基于链表实现 3.9.BSTSet ..................................... 集合_基于二分搜索树实现 3.10.LinkedListSet ....................... 集合_基于链表实现 3.11.BSTMap ................................ 映射_基于二分搜索树实现 3.12.AVLTreeMap ....................... 映射_ 基于AVL树实现 3.13.LinkedListMap .................... 映射_基于链表实现 3.14.MaxHeap ............................. 最大二叉堆 3.15.SegmentTree ...................... 线段树 3.16.Trie ......................................... 字典树 3.17.QuickFind ............................ 并查集_基于数组实现 3.18.QuickUnion ......................... 并查集_基于树思想实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值