[图解数据结构之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

阅读更多
版权声明:本文为 梦蓝樱飞 原创文章,可以随意转载,但真诚希望在明确位置注明原文超链接的出处!!! 非常感谢! https://blog.csdn.net/menglanyingfei/article/details/71517818
个人分类: Java基础
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭