IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构 DAY01 -> 正文阅读

[数据结构与算法]数据结构 DAY01

之所以写这个专栏,一来希望自己通过不断地写作,在夯实数据结构知识的同时,也希望自己写的东西能够让其他人有所收获;二来希望自己的知识体系形成网络化的整体结构,而不是零散的碎片结构。

今天我们聊聊数据结构的基础知识,开始之前我们先思考以下几个问题:

  1. 什么是数据结构?

  2. 数据结构到底学些什么东西?

说起数据结构,我想很多人会想到数组和链表。其实不然,这两种只不过是顺序结构和链式结构的两种表示,类似的还有队列,堆和栈等。对于数据结构这个概念并没有官方的明确定义,翻阅各种教材可以找到各种各样的说法,按照严蔚敏的教材中给的定义,数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。按照我个人的理解,数据结构即为满足特定需求的数据表示方式,常见的有以下几种数据结构。

图片

  • 几个基本概念

可以说数据结构是数据的表示方式,那么什么是数据呢?数据是对客观事物的符号表示,在计算机科学中是指所有能够输入到计算机中并被计算机程序处理的符号的总称。数据元素作为数据的基本单位,在计算机中程序中可以被单独处理,例如,海底捞的叫号系统,每一个取号信息可以被认为是一个数据元素,一个数据元素中又包含若干个数据项,同样以海底捞叫号系统为例,每个取号信息作为一个数据元素,其中又包括了手机号码,用餐人数等等。这些信息都被认为是一个数据项。而所有的叫号信息我们称之为数据对象(数据对象:数据相同的数据元素的集合,是数据的一个子集),具体如下图所示。

图片

我们在计算机中操作数据的时候,需要给变量定义特定的数据类型,一定的数据类型决定了该数据所能够执行的操作的集合。例如,在C语言中,int 型的数据决定了,它可以进行+,-,*,/运算,而指针类型可以执行+,-运算,却不能执行乘法运算。因此我们可以得出数据类型的基本概念即,一个值的集合以及在这个值集上可执行的操作的总称,按照值的不同特性,我们又可以将其分成两类,一类是非结构的原子类型,即高级程序设计语言中的基本数据类型。另一类是结构类型,结构类型由基本数据类型或结构组成的非原子类型,具体如下所示。

// 原子类型
int   a = 0;
float *b = 1.0;
char  c = "";
bool  result = false;	// 结构体类型
typedef struct Person {    
	char *name;    
	int  age;    
	int  gender;
}

前面提到数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合,这里我们又可以将其分为,逻辑结构和物理结构两种类型。逻辑结构描述的是数据元素之间的逻辑关系,与计算机的实现无关,物理结构(存储结构)描述的是数据元素在计算机中的表示,如下所示。

图片

  • 数据结构的具体应用

数据结构在我们日常生活中随处可见,例如在食堂打饭的你站在长长的队伍中间,这就是一个典型的线性数据结构。应用到计算机程序中就是一个队列的,海底捞叫号系统等待被叫号的你就是如此。

图片

当你在使用微信搜索附近的人寻找爱的时候,就使用了图这个数据结构来描述人与人之间的网络关系。

图片

图片

  • 总结

图片

  • 参考文献及图片引用出处

[1] 数据结构:C语言版 . 严蔚敏等 . 北京:清华大学出版社,2007

[2] 数据结构考研复习指导:王道论坛 . 电子工业出版社

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 00:10:44  更:2021-07-24 00:11:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 15:02:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码