数据结构

本文介绍了数据结构的基础概念,包括数据、数据元素、数据项和数据类型,并详细阐述了逻辑结构(集合、线性结构、树形结构、图状结构)与存储结构(顺序结构、链式结构等)。此外,还讲解了数据类型和抽象数据类型的概念,强调了抽象数据类型在简化问题描述中的作用。最后,讨论了算法的设计与分析,包括时间复杂度和空间复杂度的评估。
摘要由CSDN通过智能技术生成

1.数据、数据元素、数据项和数据类型数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。
数据元素:数据(集合)中的一个“个体”,数据及结构中讨论的基本单位
数据项:数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。
数据类型:在一种程序设计语言中,变量所具有的数据种类。整型、浮点型、字符型等等
2.数据结构——逻辑结构和存储结构
逻辑结构:数据之间的相互关系。集合 :结构中的数据元素除了同属于一种类型外,别无其它关系。
线性结构 :数据元素之间一对一的关系
树形结构 :数据元素之间一对多的关系
图状结构或网状结构 :结构中的数据元素之间存在多对多的关系
在数据结构中,从逻辑上可以将其分为线性结构和非线性结构物理结构/存储结构:数据在计算机中的表示。
物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、哈希结构)等数据结构的基本操作的设置的最重要的准则是:实现应用程序与存储结构的独立。实现应用程序是“逻辑结构”,存储的是“物理结构”。逻辑结构主要是对该结构操作的设定,物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、希哈结构)等。
3.数据类型和抽象数据类型
数据类型:在一种程序设计语言中,变量所具有的数据种类。整型、浮点型、字符型等抽象数据类型:一个数学模型以及定义在该模型上的一组操作。
抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。
关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。
例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些操作:插入一个元素、删除一个元素等。
4.抽象数据类型的表示与实现
详细定义格式:ADT 抽象数据类型名{数据对象:<数据对象的定义>数据关系:<数据关系的定义>基本操作:<基本操作的定义>}ADT 抽象数据类型名
算法与算法分析:
1、算法的定义及特性算法五个特性: 有穷性、确定性、可行性、输入、输出算法设计要求:正确性、可读性、健壮性、高效率与低存储量需求。(好的算法)
2、评价算法优劣的基本标准算法的描述有伪程序、流程图、N-S结构图等。E-R图是实体联系模型,不是程序的描述方式。设计算法在执行时间时需要考虑:算法选用的规模、问题的规模
3、算法的时间复杂度时间复杂度:算法的执行时间与原操作执行次数之和成正比。时间复杂度有小到大:O(1)、O(logn)、O(n)、O(nlogn)、O(n2)、O(n3)。幂次时间复杂度有小到大O(2n)、O(n!)、O(nn)
4、算法的空间复杂度空间复杂度:若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间。(1)一个程序不一定满足有穷性。例操作系统,只要整个系统不遭破坏,它将永远不会停止,即使没有作业需要处理,它仍处于动态等待中。因此,操作系统不是一个算法。(2)程序中的指令必须是机器可执行的,而算法中的指令则无此限制。算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。(3)一个算法若用程序设计语言来描述,则它就是一个程序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值