数据结构01 - 不了解这些数据结构的基本概念,怎么和别人吹牛?
数据结构与算法
Lesson01 - 数据结构的基本概念
文章目录
- 数据结构与算法
- 前言
- 1 基本概念和术语
-
- 1.1 数据
- 1.2 数据元素、数据项
- 1.3 数据对象
- 1.4 数据类型
- 1.5 数据结构
- 2 数据结构的三大要素
-
- 2.1 数据的逻辑结构
- 2.2 数据的存储结构
- 2.3 数据的运算
- //后记
前言
Lesson01 主要分享一些数据结构概念性的知识,从宏观上把握数据结构的整体框架。
在这里我会介绍一下数据结构的基本术语,在专业解释的同时加上一下自己的理解,帮助理解抽象的概念和术语。
1 基本概念和术语
1.1 数据
🏃数据是信息的载体,是描述客观事物属性的数、字符以及能输入到计算机程序识别和处理的符号的集合。它是可识别的、抽象的符号。
🏃通俗而言,数据就是对信息的表达,可以是符号、文字、数字、语音、图像、视频等。
🏃对计算机而言,就是二进制0和1。
1.2 数据元素、数据项
🏃数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。
🏃一个数据元素是由若干数据项组成的,数据项是构成数据元素的最小单位。
💘举个栗子:
我们QQ,微信的所有好友可以看成是数据。
其中每一个人可以看成是一个一个的数据元素,而每一个人的个人信息(昵称,账号,性别…)都可以看作一个一个的数据项。
1.3 数据对象
🏃数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
💘这里给一个venn图帮助理解一下。
1.4 数据类型
🏃数据类型是一个值的集合和定义在此集合上的一组操作的总称。
1.5 数据结构
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
💘数据结构从定义上来理解非常抽象,我们看到定义不能直接联想到什么。
💘我试着用通俗的话来解释一下:类比于房屋结构,就是描述房屋的结构。房屋的底层结构,房屋的外部结构,房屋的内部装修之类的,门窗怎么设计,家具怎么摆放等等。
💘数据结构就是一种描述数据的结构。在计算机中,数据中各元素之间在内存中的位置关系(存储);数据元素之间在逻辑上的关系;以及设计我们想要的数据元素之间的关系结构,并在设计出来的结构中运算,达到我们想要的目的。
2 数据结构的三大要素
2.1 数据的逻辑结构
🏃在百度百科上,对逻辑的定义是这样的:逻辑就是思维的规律,规则。
🏃引用到数据上就是,数据各个元素之间的规律和规则,即从逻辑上来描述数据。
💘概念很抽象,我们先来看下面四个图。
🏃第一个图,所有元素在一个集合里,相互之间互不影响,我们称它为 - 集合。
🏃第二个图,所有元素被串在一起,像一个冰糖葫芦,我们称它为 - 线性结构。
🏃第三个图,元素从上往下逐渐延伸,像一棵树一样,我们称它为 - 树结构。
🏃第四个图,元素与元素之间相互缠绕在一起,类似生活中各城市之间的道路关系,我们称它为 - 图结构。
💘总结:数据的逻辑结构就是元素之间的逻辑关系,也就是我们能想象出来的元素之间的关系。
2.2 数据的存储结构
🏃这个概念比较好理解,实际上就是如何把数据元素存储到计算机的存储器中
🏃存储结构的实现依赖计算机语言
💘这里举一个最容易理解的栗子:
在C语言中我们都学过数组,数组在内存中的存储是从低地址到高地址连续存储数据的。
在内存中这些数据像是被一根线连在一起,这种存储结构我们称它为 - 顺序存储。
💘当然除了顺序存储,还有链式存储、索引存储和散列存储。后续课程会更加详细的介绍。
2.3 数据的运算
🏃这里的运算不是数学上单纯的加减乘除,而是在数据的逻辑结构和存储结构的基础上,提出一些对数据的要求,并且实现它。
🏃比如:如何在一堆数据中查找某个元素,如何删除一个元素,如何对元素进行排序,都是数据的运算的范畴,不可狭义的理解为数学的运算。
//后记
🏃 以后每周会更新一到两篇学习数据结构的笔记,用来记录自己的学习历程,复习巩固所学的知识。
🏃 文中概念或者代码有任何错误的地方,希望大佬们在评论区指出,本人会虚心接受并且改正。