【数据结构复习 绪论】

1、数据结构的定义

1.1基础概念

数据: 描述客观事物的数和字符的集合

数据元素: 数据的基本单位

数据项: 具有独立含义的数据最小单位,也称为字段或域

数据对象: 性质相同的数据元素的集合,是数据的一个子集(在数据结构学习中所讨论的数据通常是指数据对象)

数据结构: 所有数据元素以及数据元素之间的关系(或相互之间存在某种特定联系的数据元素的集合)

数据结构=数据+结构

1.2数据结构的作用

数据结构是一门“描述现实世界实体的数据模型(通常为非数值计算)及其之上的运算在计算机中如何表示和实现”的学科。

用计算机解决一个具体问题大致步骤:
(1)、分析问题,确定数据模型
(2)、设计相应的算法
(3)、编写程序,运行并调试程序,直至得到正确的结果

· 确定数据模型的本质是通过分析问题,从中提取操作的对象,并找出这些操作对象之间的关系,然后用数学语言加以描述。
有些问题的数据模型可以用具体的数学方程式来表示,但更多的实际问题需要从数据入手分析并得到解决问题的方法。

以一栋房子为例:房屋由很多构件组成,窗户是其中一个构件。将窗户视为 数据结构 ,窗户的元素如铝合金框、玻璃、拉手等,这些元素构成的 窗户模型 就是逻辑结构。实现了窗户模型,就建好了窗户。

2、结构

2.1逻辑结构

2.1.1逻辑结构类型

逻辑结构是指数据元素之间的逻辑关系,是从具体问题中抽象出来的数据模型。
1)、集合
2)、线性结构
3)、树形结构

2.1.2 逻辑结构表示

1)图表
2)二元组

2.2存储结构

1)、顺序存储结构

struct 
{   int no;//学号
    char name [8];//姓名
    char sex[2];//性别
}Stud[7]={{1,"李四","男"},{2,"王五","男"}};

2)、链式存储结构

typedef struct Studnode
{ int no;
  char name [8];
  char sex [2];
  struct Studnode *next;//存储指向下一个结点的指针
}StudType;//结点类型

3)、索引存储结构
索引存储结构是指在存储数据元素信息的同时还建立附加的索引表。存储所有数据元素信息的表称为主数据表,其中每个数据元素有一个关键字和对应的存储地址。

4)、哈希(或散列)存储结构
根据元素的关键字通过哈希或散列函数直接计算出一个值,并将这个值作为该元素的存储地址。

3、数据运算

数据运算是指对数据实行的操作。每组数据元素都有一组相应的运算,最常见的运算有查找、删除、增加、更新、排序等。

  . 数据运算分为运算定义和运算实现两个方面;运算定义是对运算功能的描述,是抽象的,是基于逻辑结构的;运算实现是具体的,是基于存储结构的

对于同一种逻辑结构,可能有多种存储结构,并在不同的存储结构中同一运算的实现过程是不同的。

4、数据类型和抽象数据类型

数据类型 是一组性质相同的值的集合和定义在此集合上的一组操作的总称,是某种程序设计语言中已经实现的数据结构

C/C++中常用的数据类型
1)基本数据类型(或自动变量)
2)指针类型
3)数组类型
4)结构体类型
5)共用体类型
6)自定义类型

存储空间的分配

1)静态存储空间的分配
2)动态存储空间的分配

抽象数据类型

从问题的数据模型中抽象出来的逻辑数据结构和逻辑数据结构上的运算,不考虑计算机的具体存储结构和运算的具体实现方法。(ADT)
即只包含: 运算定义 、 逻辑结构

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值