什么是数据结构

1 数据结构的定义

 

1.1 数据结构中的几个概念

数据:所有能够输入到计算机中,且能被计算机处理的符号的集合

结构化数据实例

数据元素:是数据(集合)中的一个"个体",它是数据的基本单位

数据项:数据项是用来描述数据元素的,它是数据元素的最小单位

数据对象:具有相同性质的若干个数据元素的集合,如整数数据对象是所有整数的集合

默认情况下,数据结构中讨论的数据都是数据对象

数据结构:就是指带结构的数据元素的集合

一个数据的构成

数据元素之间的关系  数据的逻辑结构

数据元素及其关系再计算机存储器中的存储方式   数据的存储结构(或物理结构)

施加在数据上的操作  数据运算

1.2 数据的逻辑结构表示

数据的逻辑结构是面向用户的,它有多种表示形式 如表格,二元组,序偶,图形等

1.3 数据的存储结构表示

数据在计算机存储器中的存储方式就是存储结构

设计存储结构的这种映射应满足两个要求

存储所有元素

存储数据元素间的关系

如:学生表结构1--结构体数组

存放学生表的结构体数组Stud定义如下: 

映射过程

这种存储结构的特点:(顺序存储结构)

所有元素占用一整块内存空间.

逻辑上相邻的元素,物理上也相邻 

学生表存储结构2--链表

存放学生表的链表的节点类型StudType声明如下:

这种存储结构的特点(链式存储结构):

一个逻辑元素用一个节点存储,每个节点单独分配,所有节点的地址不一定是连续的

用指针来表示逻辑关系

1.4 数据运算

数据运算是对数据进行操作.分两个层次:运算描述和运算实现.

结论:

同一逻辑结构克对应多种存储结构

同样的运算,在不同的存储结构中,其实现过程是不同的

2 数据结构类型

各种各样的数据结构呈现出不同的逻辑结构,归纳为4种

2.1 集合

2.2 线性结构

 

2.3 树形结构

 

2.4 图形结构

 

 3 存储结构类型

在软件开发中,人们设计了各种存储结构。归纳为4种基本的存储结构。

顺序存储结构

链式存储结构

索引存储结构

哈希(散列)存储结构

主要的几种存储结构

3.1 顺序存储结构

顺序存储结构采用一组连续的存储单元存放所有的数据元素。
逻辑上相邻的元素的存储单元也相邻。也就是说,元素之间的逻辑关系由存储单元地址间的关系隐含表示,即顺序存储结构将数据的逻辑结构直接映射到存储结构。

顺序存储结构可实现对各数据元素的随机存取。即顺序存储结构具有随机存取特性。
随机存取是指给定某元素的逻辑序号i,能在常量时间内查找到对应的元素值。

3.2 链式存储结构

链式存储结构中每个结点单独存储,无需占用一整块存储空间。
但为了表示结点之间的关系,给每个结点附加指针字段,用于存放相邻结点的存储地址。

 

 3.3 索引存储结构

索引存储结构 = 数据表 +索引表。
索引表中的每一项称为索引项,索引项的一般形式为:(关键字,对应地址),其中“对应地址”为该关键字的记录在数据表中的存储地址。
索引表中所有关键字有序排列(如递增)。

 索引存储结构特点:

通过索引表按关键字查找速度快增加索引表 存储空间较大

3.4 哈希(散列)存储结构

哈希存储结构 = 哈希函数 +解决冲突方法。
哈希函数H(key)将关键字为 key的元素存放在该地址。
查找关键字为 key的元素时,先计算H(key),由该值和解决冲突方法来确定其存储地址。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值