【数据结构与算法】之(数据结构绪论篇)(一)溢彩色

简介: 【数据结构与算法】之(数据结构绪论篇)(一)溢彩色

内容源于《大话数据结构溢彩版》共九篇;主要是做笔记,;以下第一篇。

If you give a program, you will frustrate them for a day, if you teach them how to program,you will frustrate them for a lifetime.(你交给某人一个程序,你将折磨他一整天,如果你教某人如何编写程序,你将折磨一辈子)。

@[toc]

1.数据结构概论(Abstract Data Type)

什么是数据结构

用计算机去解决一个问题时,大概需要3个步骤:

  1. 首先,从具体问题中抽象出一个数据模型
  2. 其次,设计一个解决此设计模型的算法
  3. 最后,编写出程序

那么数据结构在学什么?

  1. 如何用程序代码把现实世界的问题信息化
  2. 如何用计算机高效地处理这些信息从而创造价值

总而言之:《数据结构》是介于数学、计算机硬件和计算机软件三者之间的一门核心课程


1-1.抽象数据类型:

一个数学模型及定义在该模型上的一组操作;抽象数据类型体现了程序设计中问题分解,抽象和信息隐藏的特性。

抽象:抽象是指取出事物具有的普遍性的本质;只告诉你“是什么”,没说“怎么实现”。


1-2.基本概念和术语

数据

数据,是描述客观事务的符号,是计算机中可以操作的对象,是能被计算机识别到并输入给计算机处理的符号集合。

数据元素

数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。

在人类中,人就是数据元素;畜禽类?牛,马,羊,狗,猫就是畜禽类的数据元素。

数据项

数据项:一个数据元素可以由若干个数据项组成。

比如人这样的数据元素,可以由眼睛,耳朵,嘴巴,手脚等这些数据项,也可以有姓名,年龄,联系号码,邮政编码等数据项

数据项是不可分割的最小单位。

数据对象

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

什么是性质相同呢?还是刚才的例子,人都有姓名,生日,性别等相同的数据项。

数据结构

不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系称之为结构。


1-3.数据结构概述

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

定义:我们如何把现实中大量而复杂的问题以==特定的====数据类型==和==特定的存储结构==保存到主存储(内存)中,以及在次基础上为实现某个功能(比如查找某个元素,删除某个元素,堆所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法

数据结构 = 个体 + 个体的关系

算法 = 对存储数据的操作


1-4.逻辑结构与物理结构

1-4.1逻辑结构

逻辑结构:是指数据对象中数据数据元素之间的相互关系**

  1. 集合结构:集合结构中的元素除了同属于一个集合外,他们之间没有其它关系。
  2. 线性结构:线性结构中的数据元素之间是一对一的关系
  3. 树形结构:树形结构中的数据元素是一种一对多的关系
  4. 图形结构:图形结构的元素是多对多的关系
物理结构

物理结构:是指数据的逻辑结构在计算机中的存储形式数据元素的储存结构分为两种:

  1. 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理管理是一致的。
  2. 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。


等待更新,未完待续.....


目录
相关文章
|
21天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
66 4
|
2月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
91 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
19天前
|
数据采集 存储 算法
Python 中的数据结构和算法优化策略
Python中的数据结构和算法如何进行优化?
|
27天前
|
算法
数据结构之路由表查找算法(深度优先搜索和宽度优先搜索)
在网络通信中,路由表用于指导数据包的传输路径。本文介绍了两种常用的路由表查找算法——深度优先算法(DFS)和宽度优先算法(BFS)。DFS使用栈实现,适合路径问题;BFS使用队列,保证找到最短路径。两者均能有效查找路由信息,但适用场景不同,需根据具体需求选择。文中还提供了这两种算法的核心代码及测试结果,验证了算法的有效性。
89 23
|
18天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
47 1
|
2月前
|
机器学习/深度学习 存储 缓存
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
39 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
27天前
|
算法 vr&ar 计算机视觉
数据结构之洪水填充算法(DFS)
洪水填充算法是一种基于深度优先搜索(DFS)的图像处理技术,主要用于区域填充和图像分割。通过递归或栈的方式探索图像中的连通区域并进行颜色替换。本文介绍了算法的基本原理、数据结构设计(如链表和栈)、核心代码实现及应用实例,展示了算法在图像编辑等领域的高效性和灵活性。同时,文中也讨论了算法的优缺点,如实现简单但可能存在堆栈溢出的风险等。
39 0
|
2月前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
40 4
|
2月前
|
搜索推荐 算法
数据结构与算法学习十四:常用排序算法总结和对比
关于常用排序算法的总结和对比,包括稳定性、内排序、外排序、时间复杂度和空间复杂度等术语的解释。
25 0
数据结构与算法学习十四:常用排序算法总结和对比
|
2月前
|
存储 缓存 分布式计算
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
39 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题