学完C语言,如何在计算机中表示信息?
例如: 如何表示微博中互相关注的用户两者之间的关系
数据结构在学什么?
- 如何用程序代码吧现实世界的问题信息化
- 如何用计算机高效地处理这些信息从而创造价值
数据结构的基本概念
1. 数据:
数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的复合的集合。数据是计算机程序加工的原料。
2.数据元素、数据项:
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。
一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。
// 要根据实际的业务需求来确定什么是数据元素、什么是数据项
3.数据结构、数据对象:
- List item
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
数据结构:某个特定门店的排队顾客信息和它们之间的关系。
数据对象:全国所有门店的排队顾客的信息。
4.数据类型:先分析数据结构三要素(如下)
1、逻辑结构:数据元素之间的逻辑关系是什么?
数据的逻辑结构分为:(1)集合、(2)线性结构、(3)树形结构、(4)图状结构(网状结构)。
(2)线性结构:数据元素之间是一对一的关系,除了第一个元素,所有元素都有唯一的前驱,除了最后一个元素,所有元素都有唯一的后驱。
(3)树形结构:数据元素之间是一对多的关系。
(4)图结构:
2、数据的物理结构(存储结构):如何用计算机表示数据元素的逻辑关系?
(1)链式存储,逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
(2)索引存储。在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)。
(3)散列存储,根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储
3、数据类型、抽象数据类型
- 数据类型是一个值的集合和定义在此集合上的一组操作的总称。
- (1)原子类型。值不可再分的数据类型。
- (2)结构类型。值可以在分解为若干成分的数据类型。
抽象数据类型(Abstract Data Type,ADT)是抽象数据组织及与之相关的操作。
定义了一个ADT,就是定义了数据的逻辑结构、数据的运算。也就是定义了一个数据结构