关闭

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

标签: Java数据结构Java基础逻辑结构存储结构
915人阅读 评论(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
0
查看评论

图解数据结构-使用Java

  • 2017-10-31 22:45
  • 29.20MB
  • 下载

《图解数据结构-使用Java》

  • 2017-12-28 11:25
  • 49B
  • 下载

java 中几种常用数据结构

JAVA中常用的数据结构(java.util. 中) java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。其主要的关系(继承关系)有:  (----详细参见java api...
  • u010947402
  • u010947402
  • 2016-07-11 09:11
  • 55225

Java数据结构和算法(一)——开篇

Java数据结构和算法(一)——开篇
  • iaiti
  • iaiti
  • 2014-09-15 07:03
  • 111451

图解数据结构之开篇

随着工作年限的增加,越来越觉的内功的重要性,所以我觉的应该回过头来再看一下计算机理论基础,巩固和增强一下自己的内功,所以我打算从数据结构开始看起。特在此记录自己的学习过程。          我打算以图解的形式记录这次学习过程,这样能够加深印象,也...
  • azurecell
  • azurecell
  • 2015-01-16 23:20
  • 722

图解数据结构(pdf)

  • 2011-11-02 14:50
  • 1.72MB
  • 下载

再读数据结构----图解数据结构学习笔记(一)

回顾数据结构,找到一些遗漏的知识,如有不对不足,请您指出共同学习 1.算法与程序的区别:      这里要说的不是概念上的区别,我们都知道:数据结构+算法=程序。      程序中允许有无限循环的存在,比如操作系统中的作业调度器,启动后除非...
  • qq_26357441
  • qq_26357441
  • 2016-03-09 10:55
  • 260

图解程序员画流程图、数据结构图及各种复杂图形的Graphviz工具入门

画linux内核文件系统结构图、内存分配以及学习数据结构树、图时,发现使用Graphviz非常的方便快捷。鉴于网上关于它的安装、使用不是特别具体,本博文将一步步告诉大家如何快速地使用Graphviz画相关的流程图、树形图等。告诉大家Graphviz的快速入门。
  • jin13277480598
  • jin13277480598
  • 2016-05-03 16:38
  • 10418

java图解数据结构--树状结构

定义书可用来描述有分支的结构,属于一种阶层性的==非线性结构==,是由一个或一个以上的节点所组成的有限集合。 1. 存在一个特殊的节点,称为树根(root). 2. 其余的节点分为n>=0 个互斥的集合,T1,T2,T…Tn,且每个集合称为子树。树的相关名词 度(degree):子树的个数...
  • cjm1103
  • cjm1103
  • 2017-05-22 22:25
  • 488

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

本文行文思路结构一. 写此系列文章缘由 二. 相关概念表述 1. 数据结构的定义 2. 逻辑结构和存储结构的对比 三. 基本数据结构的分类和列举 四. 总结一. 写此系列文章缘由之所以, 打算用Java语言再把基础的数据结构实现一遍, 原因有以下几点: 第一: 我们在学校里学的数据结构大多数...
  • menglanyingfei
  • menglanyingfei
  • 2017-05-10 13:10
  • 915
    个人资料
    • 访问:29496次
    • 积分:1319
    • 等级:
    • 排名:千里之外
    • 原创:86篇
    • 转载:11篇
    • 译文:0篇
    • 评论:12条
    个人说明
    个人很喜欢的一句话, (摘自网络):
    时光荏苒,祝愿不要忘记曾经的初心

    本人现在是一名大二软件工程专业的学生, 每月会坚持更新, 本博客会总结, 整理, 分享个人学习的相关技术知识, 用来记录自己不断进步的历程, 当然内容会以Java为主线.

    虽然是技术博客, 但毕竟是人, 也有自己的情感, 所以, 有时也会分享一些有用的学习资源和一些学习经验和方法, 同时也会写一些其它方面上自己的感受和想法!

    或许我的博客不是写得非常好, 但每一篇文章绝对会用心写! 如果, 你发现有不足或者错误之处, 非常欢迎指出, 当然也欢迎各位小伙伴们来交流技术和学习感受.

    每天进步一点点, 共勉!

    博客专栏
    最新评论