数据结构-概述

概述

数据结构是什么?

  • 数据结构是一门研究组织数据方式的学科,有了编程语言也就有了数据结构。

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

数据结构的起源

早期人们都把计算机理解为数值计算工具,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。可现实中,我们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表、树和图等数据结构)的帮助,才能更好地处理问题。所以数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。

1968年

《计算机程序设计艺术》第一卷《基本算法》中,较系统地阐述了数据的逻辑结构和存储结构及其操作,开创了数据结构的课程体系。

1968年

数据结构作为一门独立的课程,在计算机科学的学位课程中开始出现。计算机相关专业的学生开始学习《数据结构》。

70年代初

出现大型程序,软件相对独立,结构程序设计成为程序设计方法学的主要内容,人们越来越重视“数据结构”,

认为程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法。可见,数据结构在程序设计当中占据了重要的地位。

基本概念和术语

1.数据:描述客观事物的符号,能够输入到计算机中,被计算机识别并操作

数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

  • 对于整型、实型等数值类型,可以进行数值计算
  • 对于字符数据类型,就需要进行非数值的处理
  • 对于声音、图像、视频等其实是可以通过编码的手段变成字符数据来处理的

2.数据元素:是组成数据的、有一定意义的基本单位,在计算机中统称作为整体处理(也称为记录)

3.数据项:数据不可分割的最小单位

在数据结构这门课程中,我们把数据项定义为最小单位,是有助于我们更好地解决问题。所以,记住了,数据项是数据的最小单位。

但真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点。

就像我们讨论一部电影时,是讨论这部电影角色这样的“数据元素”,而不是针对这个角色的姓名或者年龄这样的“数据项”去研究分析。

4.数据对象:性质相同的数据元素的集合,是数据的子集

在实际应用中,处理的数据元素通常具有相同性质,在不产生混淆的情况下,我们都将数据对象简称为数据。

数据结构与算法的关系?

数据结构是算法的基础。

程序 = 数据结构 + 算法

数据结构分为两大类

线性结构

非线性结构

  • 散列表

线性结构 是最常用的数据结构

  • 特点是数据元素之间 存在一对一的线性关系

    • 顺序储存结构(数组/顺序表)
    • 链式储存结构(链表)

十大常用算法

  1. 二分查找(非递归)
  2. 分治算法
  3. 动态规划
  4. 贪心算法
  5. KMP算法
  6. 马踏棋盘算法
  7. 普里姆算法
  8. 迪杰斯特拉算法
  9. 佛洛伊算法
  10. 克鲁斯卡尔算法

本系列笔记主要按尚硅谷教程的讲解顺序,使用Java代码实现各种数据结构,同时参考《大话数据结构》一些理论知识。

原文地址:https://www.cnblogs.com/1101-/p/13219462.html