前言
标题不是胡说八道,编程就像修仙,数据结构就是无上功法入门篇,只要学好了数据结构,未来穿越到修仙界也能快人一步,直接成为筑基强者。实际就是胡说八道。
本系列目标是以最简单的方式讲述数据结构,并着重于其在应用开发中的使用,欢迎大家阅读和评论,共同进步~~
这是第一章,介绍数据结构的基本概念。
什么是数据结构
不考虑复杂概念,可直接类比理解:
- 数据项是不可分割的最小单位,类似于表格中的一列,它包含了数据的具体属性或特征,如姓名、年龄等。
- 数据元素则是由若干个数据项组成的基本单位,类似于表格中的一行记录,它包含了完整的信息,如一个人的全部信息。
- 数据对象是性质相同的数据元素的集合,可以理解为具有相同结构的多个记录的集合,类似于数据库中的一张表,包含了多个记录(数据元素)。
- 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,和数据对象一样也是数据元素的集合,但是数据结构关注的是数据元素间的组织方式和操作方式(运算),而数据对象更关注数据类型。
就像食堂排队打饭,数据结构关注的是这些人是横着排竖着排还是交叉排,怎么从一列变成两列,而数据对象关注的是这些人是谁,他们喜欢吃什么。
数据结构包含哪些内容
逻辑结构
数据元素之间的逻辑关系,它描述了数据元素之间的组织方式,与数据的存储无关。
-
集合结构:数据元素间没有关系(既然已经是数据结构了,那必然是数据元素的集合,只是元素之间没有其他关系)
-
线性结构:数据元素间是一对一关系
-
树状结构:数据元素间是一对多的层级关系
-
网状结构(图结构):数据元素间是多对多关系
存储结构(物理结构)
数据结构在计算机中的表示方式,它描述了数据元素在计算机存储器中的表示和存储方式。
- 顺序结构:所有元素存放在一片连续的存储单元中,逻辑上相邻的元素在物理位置也相邻,适用于需要顺序访问元素的情况。
- 链表结构:不要求逻辑上相邻的元素在物理位置相邻,元素间的逻辑关系通过附设的指针来表示,适用于需要频繁插入和删除元素的情况。
- 索引结构:建立索引表,每个数据元素占用表中的一项,表项通常包含关键字和地址指针,适用于需要快速查找元素的情况。
- 散列结构:通过构造相应的散列函数,由散列函数的值来确定元素存放的地址,适用于需要快速查找和插入元素的情况。
留一笔,未来可能补图
运算
对数据元素可以进行的操作和算法,如插入、删除、查找、排序、遍历等
九大结构
下一章开始讲九大结构,毕竟炼气有9层,炼完才能筑基。但是这里还是有必要提一下:
- 九大结构主要侧重于描述数据元素间的逻辑关系,所以主要属于逻辑结构范畴
- 同时同样的逻辑结构也可以有不同的物理结构实现,两者组合来满足不同的应用场景和性能要求
这也是数据结构的魅力所在~~
结束
尽情期待后续内容,如有不足或错误,请评论留言!