2.1【概念】

1. 概念

数据结构主要学习:数据元素集合的:逻辑结构物理结构、及对数据元素集合的 运算操作

1.1. 数据结构三要素

  1. 物理结构
  2. 逻辑结构
  3. 运算操作

1.2. 基本概念

数据:描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

数据对象:是性质相同的数据元素/结点的集合,是数据的子集。

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

结点这个词一定要熟悉,在链表中会大量出现。

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

【数据】

数据对象

数据元素/结点

数据元素/结点

数据元素/结点

数据项1

数据项2

数据项1

数据项2

数据项1

数据项2

struct student stu_arr_23061[49]; // 数据对象

struct student t1;                // 数据元素/结点

t1.weight = 123.6;                // 数据项

2. 逻辑结构

逻辑上,数据对象中 数据元素/结点(单个对象) 之间的,相互关系。

逻辑结构通常分为以下几种:

  1. 集合结构:数据元素/结点 除了同属于一个集合外,他们之间没有其他关系。

  1. 线性结构:数据元素/结点 是一对一的关系。

  1. 树形结构:数据元素/结点 之间存在一种一对多的关系。

  1. 图形结构:数据元素/结点 之间是多对多的关系。

3. 物理结构

数据逻辑结构 在计算机 内存中存储形式

物理结构通常分为以下几种:

  1. 顺序存储结构
  2. 链式存储结构
  3. 索引存储结构(暂不常用)
  4. 散列存储结构(暂不常用)

3.1. 顺序存储结构

数据元素/结点(单个变量) 存放在 地址连续 的存储单元里,逻辑上 相邻的元素在内存上 也相邻

这样的存储形式,称为顺序存储结构。数组就是这样的顺序存储结构。

顺存储结构就像排队,大家都按照顺序排好,每个人占一小段空间,逻辑上谁也不能插队。

特点:

1. 内存连续。

2. 随机存取(不需要遍历而是直达,因地址已知)。

3. 相对于链式存储结构每个元素占用的空间少(不需要指针域)。

3.2. 链式存储结构

数据元素/结点(单个变量) 存放在任意的内存单元里。

数据元素/结点 之间的 逻辑关系 通过 附设的指针域来表示,由此得到的存储表示成为链式存储结构。

特点:

1. 内存不连续(运气好可以连续,只是不关注,默认不连续)

2. 通过指针连接

3.3. 索引存储结构(暂不常用)

在存储数据的同时,建立一个附加的索引表,即索引存储结构 = 数据文件 + 索引表

特点:(类似字典)

1. 检索速度快。

2. 多了一张索引表,故占用内存多。

3. 删除数据文件时要及时更改索引表。

举例子:

电话号码查询问题:为提高查询速度,在存储用户数据文件的同时建立一张姓氏索引表,如下所示:

查找一个人的电弧就可以先查索引表,再查相应的数据文件,加快了查询速度。

3.4. 散列存储结构(暂不常用)(哈希存储结构)

通过构造相应散列函数,由散列函数的值来确定 数据元素/结点 存放的地址(即关键字和地址存在映射关系)。

特点:(增加映射运算,减小空间)

1. 存的时候按照对应关系存。

2. 取的时候按照对应关系取。

逻辑结构是面向问题的,物理结构是面向计算机的。

其基本目标就是将数据及其逻辑关系存储到计算机的内存中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值