目录

一、基本概念和术语

二、逻辑结构与存储结构(物理结构)

1.数据结构的逻辑结构

2.数据结构的存储结构

3.数据类型


一、基本概念和术语

1.数据:描述害观事物的符号,是计算机中可以操作的对象,是能被计算机识别并输入给计算机处理的符号集台。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

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

3.数据顶:一个数据元素可以由若干个数据顶组成。是数据不可分割的最小单位。

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

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

二、逻辑结构与存储结构(物理结构)

数据结构的两个层次:
逻辑结构---数据元素间抽象化的相互关系,与数据的存储无关,独立于计算机,它是从具体问题抽象出来的数学模型。
存储结构(物理结构)---数据元素及其关系在计算机存储器中的存储方式。

1.数据结构的逻辑结构

逻辑结构分为以下四种:

1)集台结构集台结构中的数据元素除了同属于一个集台外,它们之间没有具他关系。如下图所示

2)线性结构线性结构中的数据元素之间是一对一的关系。如下图所示

特点:一对一;除首结点(无前驱)尾结点(无后继)之外,中间的点都有唯一的前驱和唯一的后继结点。

3)树形结构树形结构中的数据元素之间存在一种一对多的层次关系。如下图所示。

特点:一对多;根结点无前驱;除根结点外都有且只有一个前驱结点;所有结点都可以有零个或多个后继。

4)图形结构图形结构的数据元素存在多对多的关系。如下图所示。 

2.数据结构的存储结构

说完了逻辑结构,我们再来说说数据的存储结构。存储结构是指数据的逻辑结构在计算机中的存储形式。 数据是数据元素的集合,那么根据存储结构的定义,实际上就是如何把数据元素存储到计算机的存储器中。数据元素的存储结构形式有两种:顺序序存储和链式存储。

1)顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。这种存储结构其实很简单,说白了就是排队占位。大家都按顺序排好,每个人占一小段空间,大家谁也别插谁的队。

2)链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置,如右下所示。现在如银行、医院等地方设置了排队系统,也就是每个人去了先领—个号,等着叫号去办理业务或看病。你关注的是前一个号有没有被叫到,要是叫到了就快轮到你了。显然,链式存储就灵活多了,数据存在哪里不重要只要有一个指针存放了相应的地址就能找到它了。

3.数据类型

1)数据类型的定义

数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

在C语言中,按照取值的不同,数据类型可以分为两类:

原子类型-->是不可以再分解的基本类型,包括整型、实型、 宇符型等。

结构类型-->由若干个类型组合而成,是可以再分解的。例如整型数组是由若干整型数据组成的。

2)抽象数据类型

可事实上,高级语言的编程者为了实现两个整型数字的运算,他不管最终程序运行在什么计算机上,也不关心整数在计算机内部是如何表示的,也不想知道CPU进行几次开关操作,这些操作是如何实现的对高级语言开发者来讲根本不重要。无论什么计算机、什么计算机语言,大都会面临着如整数运算、实数运算、字符运算等操作,我们可以考虑把它们都抽象出来。抽象是指抽取出事物具有的普遍性的本质。抽象是一种思考问题的方式,它隐藏了繁杂的细节,只保留实现目标所必需的信息。我们对已有的数据类型进行抽象,就有了抽象数据类型。

抽象数据类型:一个数学模型及定义在该模型上的一组操作。

抽象数据类型的定义仅取决于它的—组逻辑特性,而与其在计算机内部如何表示和实现无关。数据抽象类型的程序模块包括数据对象、数据关系以及基本操作三部分。格式为:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐