目录
- 什么是数据结构?
- 常见的数据结构有哪些?
- 数据结构的逻辑结构分类有哪些?
- 数据的存储结构有哪几种?
1、什么是数据结构?
一般来说,用计算机解决一个具体问题时,大致需要如下几步:
- 首先,要从具体问题抽象出适当的数学模型;
- 然后,设计一个解此数学模型的算法;
- 然后,再编写程序;
- 最后,进行测试、调整直至最终解决此问题。
其中寻找数学模型的实质就是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学语言加以描述。面对一些简单的场景也许只需要一个数学方程就能解决,但是面对一些复杂的场景,如需要统计图书馆书目信息、借还信息等这些非数值计算问题的数学模型,就不再是一个简单的数学方程了,而是像表、树和图之类的数据结构。
因此,简单来说,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(这称之为数据),并且这些数据之间有着某种关系(这种关系就是结构)。2、常见的数据结构
- 字符串
- 数组
- 线性表
- 栈
- 队列
- 树
- 图
3、逻辑结构分类
- 集合结构:一堆数据中唯一的关系就是同属某一个集合;
- 线性结构:结构中的数据元素之间存在一个接着一个的关系;
- 树形结构:结构中的数据元素之间存在一个对多个的关系;
- 图形结构(或网状结构):结构中的数据元素存在多个对多个的关系;
逻辑结构图形表示,如下:
4、存储结构(物理结构)
数据在计算机中的表示(或称映像)称为物理结构,又称为存储结构。在计算机中表示数据的最小单位是一个二进制位,叫做位(bit)。在计算机中,我们可以用一个由若干位组合起来形成一个位串来表示一个数据元素(如用32位即4个字节表示一个整数元素,8位即1个字节表示一个字符)。
数据元素之间的关系在计算机中有两种不同的表示方式:顺序映像和非顺序映像,并由此得出两种不同的存储结构:顺序存储结构和非顺序存储结构。顺序存储是在连续存储空间内,元素之间借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系(如图4-1,一个整型数组的两个元素11和12在内存中的位置是连续的,0010存储的是11,0014存储的是12)。而非顺序存储是借助指向元素地址的指针来表示元素之间的关系(如图4-2,一个链表里的两个元素a以及元素b,在1110存储的是元素a,a后面存储的是指向下一个元素b的地址的指针)。总结
数据结构是我们研究问题的基础数据模型,既包含了问题对象的结构也包含了问题对象之间的关系。清楚的知道我们常用的数据结构,能为我们日后思考以及解决程序问题打下坚实的理论基础。
本文为原创内容,供学习参考以及总结归纳使用,若文章中有引用到涉及版权相关的图片,请告知!
勘误,请留言!