数据结构概述

本文概述了数据结构的基础,包括线性与非线性数据结构,重点讲解了数据结构的概念、应用实例(如集合、线性表、树和图),并深入阐述了数据元素、数据对象和存储结构等核心概念。通过实例展示数据结构在计算机问题解决中的关键作用。
摘要由CSDN通过智能技术生成

数据结构之概述

一、基本数据结构

1.线性数据结构

~线性表
~栈
~队列
~串
~数组
~广义表

2.非线性数据结构

~树
~图

二、数据结构的概念

计算机解决一个问题的步骤:
1.具体问题抽象为数学模型
实质为分析问题,提取操作对象,找出操作对象之间的联系,用数学语言描述。这就是数据结构在计算机解决实际问题的重要作用。
2.设计算法
3.编程、调试、运行。

三、数据结构的应用解释

1.集合

数据元素同属一个集合外,无其他任何关系。
在这里插入图片描述

2.线性表的应用

在这里插入图片描述
(1)操作对象:学生信息(姓名,年龄等)。
(2)操作算法:插入、删除。

3.树的应用

在这里插入图片描述

(1)操作对象:各种棋局状态。
(2)操作对象:走棋(选择下一步棋的策略)

4.图的应用

在这里插入图片描述

(1)操作对象:有边的顶点。
(2)操作算法:判断是否有边,最优路径。

四、数据结构的基本概念

在这里插入图片描述

1.数据

能输入到计算机且能被计算机处理的各种符号的集合。
~信息载体。
~对客观事物的符号化表示。
~能被计算机识别、存储和加工。

包括:
(1)数值型数据
(2)非数值型数据(文件、图像、声音,但通过编码的方式最终转化为数值型)

2.数据元素、数据项

1.数据元素
数据的基本单位,通常作为一个整体来考虑和处理。

2.数据项
构成数据元素的不可分割的最小单位。

3.三者关系
数据>数据元素>数据项

3.数据对象

性质相同元素的集合,是数据的一个子集。

4.数据结构内容

(1)逻辑结构:数据元素之间的逻辑关系。
(2)存储结构:数据元素及关系在计算机内存中的表示。
(3)数据的运算与实现,对数据元素施加的操作以及这些操作在相应的存储结构上的实现。

5.数据结构层次

1.逻辑结构
~描述数据元素之间的逻辑关系
~与数据的存储无关,独立于计算机
~是从具体问题抽象出来的数据模型
2.存储结构(物理结构)
~顺序存储结构、链式存储结构、索引存储结构、哈希散列存储结构
①顺序存储结构
采用一块连续的存储单元存放所有数据元素,相邻的元素在存储结构上的位置也是相邻。存储效率高,可实现随机存取。但不便于对数据元素的插入与删除。

struct {
int stuid;
char name[8];
char sex[2];
}Stud[4];

②链式存储结构
每个数据源数采用一个内存结点存储,每一个结点都是单独分配的,所有的节点地址不一定连续的。为了表示逻辑关系,给每一个结点附加指针域,通过指针将所有的结点连接在一起。
优点便于数据元素修改,但空间利用率低,不能对元素进行随机读取。

typedef struct Studnode{
int stuid;
char name[8];
char sex[2];
struct Studnode* next;
}StudType;

③索引存取结构
在存储数据元素信息的同时还建立附加索引表。存储所有元素信息的表成为主数据表,其中每一个数据元素有一个关键字和对应的存取地址。索引表的每一项为索引项,为:关键字+地址。关键字唯一表示一个数据元素,地址对应相关数据元素在主数据表中的存储地址。
其优点查找效率高,缺点是增加内存开销。
④哈希(散列)存储结构
数据元素的关键字通过函数计算出内存地址。
其查找效率高,但不存储数据元素之间的关系。

~数据元素及其关系在计算机内存中的存储方式。
~数据结构在计算机中的表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有几何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值