抽象数据类型

大话数据结构笔记

梦想的初衷 提交于 2019-12-02 18:45:44
第一章 数据结构绪论 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。    数据—>符号。    前提:    ①可以输入到计算机及中。    ②能被计算机程序处理。 数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。 数据项:一个数据元素可以由若干个数据项组成。 数据项是数据不可分割的最小单位。 数据元素是数据结构中建立数据模型的着眼点。 数据对象:是性质相同的数据元素的集合,是数据的子集。通常简称’数据‘。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。 研究数据结构的意义:分析待处理对象的特性及各处理对象之间存在的关系。    数据结构分为:逻辑结构和物理结构。 逻辑结构:是指数据对象中数据元素之间的相互关系。 包含四种:集合结构、线性结构、树形结构、图形结构。     ①集合结构:数据元素同属一个集合外,它们之间没有其他关系。     ②线性结构:数据元素之间是一对一的关系。     ③树形结构:数据元素之间存在一对多的层次关系。     ④图形结构:数据元素是多对多的关系。   逻辑结构是针对具体问题的,为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。   物理结构:是指数据的逻辑结构在计算机中的存储形式。关键是

数据结构与算法(Python)—— (三)数据结构的概念

别来无恙 提交于 2019-12-02 06:43:30
有这样一个需求:用Python中的类型来保存一个班的学生信息,之后快速的通过学生姓名获取其详细信息。我们如何实现呢? 实际上当我们在思考这个问题的时候,我们已经用到了数据结构。列表和字典都可以存储一个班的学生信息,但是想要在列表中获取一名同学的信息时,就要遍历这个列表,其时间复杂度为O(n),而使用字典存储时,可将学生姓名作为字典的键,学生信息作为值,进而查询时不需要遍历便可快速获取到学生信息,其时间复杂度为O(1)。 我们为了解决问题,需要将数据保存下来,然后根据数据的存储方式来设计算法实现进行处理,那么数据的存储方式不同就会导致需要不同的算法进行处理。我们希望算法解决问题的效率越快越好,于是我们就需要考虑数据究竟如何保存的问题,这就是数据结构。在上面的问题中我们可以选择Python中的列表或字典来存储学生信息。列表和字典就是Python内建帮我们封装好的两种数据结构。 1. 概念 数据 是一个抽象的概念,将其进行分类后得到程序设计语言中的基本类型。如:int,float,char等。数据元素之间不是独立的,存在特定的关系,这些关系便是结构。 数据结构指数据对象中数据元素之间的关系。 Python给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做Python的内置数据结构,比如列表、元组、字典。而有些数据组织方式

data structure 1 抽象数据类型(ADT)

≡放荡痞女 提交于 2019-12-02 06:15:29
1)ADT定义:是指一个数学模型以及定义在该模型上的一组操作。包括:数据对象、数据关系、基本操作。 2)ADT表示:就是要将该类型映射到计算机中,确定存储结构以及该存储结构之上基本操作的函数原型。 3)ADT实现:基于特定存储结构之上的基本操作的实现。 4)ADT小结:自定义的数据类型、定义一组数据和施与这些数据之上的一组操作,并在模块内部给出它们的表示和实现细节,在模块外部使用的只是抽象的数据和抽象的操作。(对比封装性) 5)例子 来源: https://blog.csdn.net/weixin_43237362/article/details/102728994

数据结构之绪论

旧街凉风 提交于 2019-11-29 05:03:32
基本概念 数据: 数据 是对客观事物的符号表示,在计算机科学中指所有能输入到计算机中并被计算机程序处理的符号的总称。数据的含义很广泛,如图像、声音等都可以通过编码而归之为数据的范畴。 数据元素:(行)(元组)(记录) 数据元素 是数据的 基本单位 ,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可包含多个数据项。 数据项 是数据的不可分割的 最小单位 。如把一本书看成一个数据元素,则可把书名、作者名,看成这个数据元素包含的两个数据项。 数据对象:(表) 数据对象是性质相同的数据元素的集合,是数据的一个子集。如整形数据对象是集合 N={0,+-1,+-2......}。 数据类型: 原子类型: 其值不可再分的数据类型。如整形、字符型、枚举类型、空类型。 结构类型: 其值可以再分解为若干成分(分量)的数据类型。 抽象数据类型: 抽象数据组织及与之相关的操作。 抽象数据类型:(Abstract Data Type) 抽象数据类型(ADT) 是指一个数学模型及定义在该模型上的一组操作, 仅取决于 它的一组逻辑特性。通常用 (数据对象、数据关系、基本操作集) 这样的三元组来表示抽象数据类型。 数据结构:(数据结构=数据元素+数据关系) 数据结构 是相互之间存在一种或多种特定关系的数据元素的集合。数据元素不是孤立存在的,数据元素相互之间的关系称为 结构 。包括三个方面的内容

线性表的抽象数据类型

会有一股神秘感。 提交于 2019-11-28 16:08:11
线性表的抽象数据类型 线性表的抽象数据类型定义: ADT:线性表(list) data 线性表的数据对象集合为{a1,a2,…an},每个元素的类型均为datatype,其中除第一个元素a1和最后一个元素an外每一个元素有且只有一个前驱后继,数据元素都是一一对应的关系 操作 InitList(*L):初始化操作,建立一个空的线性表L。 ListEmpty(L):判断一个线性表是否为空,为空返回真,否则返回假。 ClearList(*L):线性表清空。 GetElem(L,I,*e):线性表L中的第I个元素值返回给e LocateEleme(L,e):线性表L中查找与给定e元素相等的元素,如果查找成功,返回该元素在表中序号,否则返回0表示失败。 ListInsert(*L,I,e):线性表第i个位置插入新元素e ListDelete(*L,I,*e):删除线性表第i个元素,并用e返回其值 ListLength(L):返回线性表的长度 来源: https://blog.csdn.net/weixin_42050661/article/details/100084914

什么是数据结构

人走茶凉 提交于 2019-11-28 12:32:06
目录 数据结构与算法官方定义 例1:如何在书架上(存储空间)摆放图书(数据) 方法1:随便放 方法2:按照书名的拼音字母顺序排放 方法3:综合方法1和2 例2:写程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印1到N的全部正整数 方法1:循环实现 方法2:递归实现 例3:写程序计算给定多项式在给定点x处的值 方法1 方法2 程序运行时间捕捉方法-clock() 说到底,什么是数据结构? 抽象数据类型(Abstract Data Type) 例4:“矩阵”的抽象数据类型定义 数据结构与算法官方定义 “数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”——Sartaj Sahni,《 数据结构、算法 与应用》 “数据结构是ADT(抽象数据类型 Abstract DataType)的物理实现。”—— Clifford A.Shaffer,《 数据结构与算法 分析》 “数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的 数据结构可以带来最优效率的算法 。” ——中文维基百科 综上:从上面的三种官方定义可以看出, 数据结构和算法通常是一起出现的 。 例1:如何在书架上(存储空间)摆放图书(数据) 只有事先得知数据规模的问题,才能得到处理数据的方法 方法1

线性表

好久不见. 提交于 2019-11-27 15:40:57
线性表(List):由零个或多个数据元素组成的有限序列。 强调几个关键的地方: 1.首先它是一个序列,也就是说元素之间是有个先来后到的。 2.若元素存在多个,则第一个元素无前驱,而最后一个元素无后继,其他元素都 有且只有一个 前驱和后继。 3.线性表强调是有限的。 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。 抽象:是指抽取出事物具有的普遍性的本质。它要求抽出问题的特征而忽略非本质的细节,是对具体事物的一个概括。抽象是一种思考问题的方式,它隐藏了繁杂的细节。 抽象数据类型:是指一个数学模型及定义在该模型上的一组操作。 抽象数据类型的标准格式: ADT 抽象数据类型名 Data   数据元素之间逻辑关系的定义 Operation   操作 endADT Operation InitList(*L):初始化操作,建立一个空的线性表L。 ListEmpty(L):判断线性表是否为空表,若线性表为空表,返回true,否则返回false。 ClearList(*L):将线性表清空。 GetElem(L,i,*e):将线性表L中的第i个位置元素值返回给e。 LocateElem(L,e):在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。 ListInsert(*L,i,e):在线性表L中第i个位置插入新元素e。

C语言数据结构-绪论

我是研究僧i 提交于 2019-11-27 10:32:00
目录 1.数据结构的起源 2.基本概念和术语 3.逻辑结构与物理结构 4.抽象数据类型 @(数据结构绪论) 1.数据结构的起源 ==数据结构==是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的关系和操作等相关问题的学科。 1968年,美国的高德纳(Donald E.Knuth)的《计算机程序设计艺术》第一卷《基本语法》中,较系统地阐述了数据的逻辑结构和存储结构及其操作,开创了数据结构的课程体系。同年(1968年),数据结构作为一门独立的课程,在计算机科学的学位课程中开始出现。 程序设计 = 数据结构 + 算法 2.基本概念和术语 ==数据==:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据不仅仅包括整型、实型等 数值类型 ,还包括字符及声音、图像、视频等 非数值类型 它是计算机程序加工的“原料”。例如,一个利用数值分析方法解代数方程的程序,其处理对象是整数和实数。一个编译程序或文字处理程序的处理对象是字符串。 数据,其实就是 符号 ,并且具备两个前提 可以输入到计算机中。 能被计算机程序处理。 数值类型可以进行数值计算。 字符类型需要进行非数值的处理。而声音、图像、视频等是通过编码的手段变成字符数据来处理的。 ==数据元素==:是组成数据的、有一定意义的 基本单位 ,在计算机中通常作为整体处理。也被称为 记录 。