数据结构绪论

本文介绍了数据结构的基本概念,包括数据、数据元素、数据对象和数据类型。数据结构是逻辑结构和存储结构的结合,涉及线性结构和非线性结构。存储结构包括顺序存储、链式存储、索引存储和散列存储,各有优缺点。算法的设计和实现与数据结构紧密相关,好的算法应具备可行性、确定性、有穷性、输入输出和正确性等特性。
摘要由CSDN通过智能技术生成

数据结构的基本概念

基本概念和术语

数据:信息的载体。是描述事物属性,性质的数、字符以及所有能够输入到计算机中且能被处理的符号的大集合。
数据元素:数据的基本单位,通常作为一个整体考虑(可再分)。一个数据元素由多个数据项组成。如: 学生记录=(姓名,年龄,…)
数据对象:具有相同性质的数据元素组成的集合。是数据的一个子集。
数据类型

  • 原子结构 //不可再分
  • 结构类型 //struct{}
  • 抽象数据类型ADT //抽象数据组织以及相关操作
    ADT的定义仅取决于模型中数据的逻辑关系。
    -== 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
    数据结构=逻辑结构+存储结构+数据的运算
    算法的设计取决于选定的逻辑结构,而算法的实现依赖于物理结构。==
    逻辑结构独立于物理结构,而物理结构依赖于逻辑结构。

逻辑结构

分为线性结构与非线性结构。
线性结构(1:1):数组、集合、线性表、队列、栈、串、广义表等。
非线性结构:树(1:N)、图(N:N)。

存储结构

又称物理结构。取决于计算机语言。如C语言中的数组a[],结构体等。
主要可分为以下几种物理结构:

顺序存储

以一整块相邻的物理块存储对应的逻辑块。
用物理相邻表明逻辑相邻
优点:可实现随机存取,存储密度大(=1)。
缺点:插入删除时需移动大量元素,且会有部分外部碎片。

链式存储

无需一整块相邻的物理块来存储,用指针来指向逻辑上后一位所在物理块
优点:插入删除数据很方便,无外部碎片。
缺点:存储密度低,无法实现随机存取,只能顺序存取。

索引存储

利用索引表来表明关键字所在地址。
优点:检索速度快。
缺点:需消耗额外空间存储索引表,且插入删除时需修改索引表。

散列存储

又称Hash存储,利用某种规则实现关键字到地址的映射(Hash表)。
优点:检索、插入、删除节点的速度都很快。
确定:处理冲突的方式若不好,很有可能会降低效率且增加时空开销。

算法

算法是解决问题步骤的一种描述,表示为指令的有限序列。算法满足以下五个特性:
有穷性:算法在有限的时间内能够结束,且每一步在有限时间内能够能够完成。
可行性:算法是实际可行的。
确定性:算法的每一步是确定的,无歧义。
输入
输出

好的算法

健壮性:输入非法数据时能够适当的做出反应或处理,而不是出现奇怪的结果。
可读性:帮助人们理解。
正确性:应当是正确的。
效率和低存储量需求:好的算法的效率应当尽可能的高,辅助空间大小尽可能的低。

五特性是任何算法都满足的,而四优点是评价算法好坏的标准。

VS程序

程序是算法在计算机上的特定实现。程序不一定满足有穷性,如死循环等。
算法不是程序,程序也不是算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值