抽象数据类型

数据结构——概述

断了今生、忘了曾经 提交于 2020-04-03 13:14:33
本来大一下册的时候学过《数据结构》,只怪自己太无知,除了能够理解基本概念外其他的一无所知,上课也算是在坐飞机吧。无奈,现在大二又来看看,复习复习。不求深入的理解只求把书读薄吧。 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的科学。 基本概念和术语:    数据: 是信息的载体,是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。    数据元素: 是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为元素、结点、顶点、记录等。(比如鸡、鸭、鱼、鹅都是动物)    数据项: 指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。(一个数据元素可以由若干个数据项组成)    数据对象: 是性质相同的数据元素的集合,是数据的子集。    数据结构: 是相互之间存在一种或多种特定关系的数据元素的集合。      从上到下是一种包含关系。    逻辑结构与物理结构:    逻辑结构: 是指数据对象中数据元素之间的相互关系。    逻辑结构分为一下四种: 集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有任何其他关系。 线性结构:数据元素除了同属于一个集合外

C语言数据结构-绪论

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

01数据结构——绪论

拥有回忆 提交于 2020-03-05 14:26:16
一、数据结构绪论 1.1 数据结构 数据结构 是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。 1.2 基本概念和术语 数据 数据 是描述 客观事物 的符号,是计算机中可以 操作的对象 ,是能被计算机识别,并输入给计算机处理的 符号集合 。 数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。 数据元素 数据元素 是组成数据的、有一定意义的 基本单位 ,在计算机中通常作为整体处理,也被称为 记录 。 比如动物类中,牛、马、羊、鸡、鸭、鹅就是其数据元素。 数据项 一个 数据元素 可以由若干 数据项 组成。数据项是数据不可分割的 最小单位 。 比如人这样的数据元素,有眼、耳、鼻、口、手、脚这些数据项,也可以有姓名、年龄、性别、出生地址、联系电话等数据项,具体哪些数据项,要根据你的系统决定。 数据对象 数据对象 是性质相同的 数据元素的集合 ,是 数据的子集 。 所谓性质相同,是指数据元素具有相同数量和类型的数据项,比如人都有姓名,性别,生日等相同的数据项。 数据结构 数据结构 是相互之间存在 一种或多种 特定关系的 数据元素的集合 。 研究数据结构的意义: 在计算机中,数据元素不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。为编写一个好的程序

数据结构第二章

吃可爱长大的小学妹 提交于 2020-02-27 09:44:13
数据结构的第二章课程知识点 文章目录 数据结构的第二章课程知识点 名词简称 数据结构的体系 抽象数据类型 抽象数据类型的框架 抽象数据类型的表现和实现 线性结构 线性结构的基本特征 线性表 线性表的类型定义 抽象数据类型线性表(ADT List) 线性表的基本操作 **顺序表** 名词简称 名词 意义 DS(Data Strucuture) 数据结构 ADT/Abstract Date Type 抽象数据类型 List 线性表 SeqList/SqList 顺序表 LinkedList/LinkList/LIST 链表 数据结构的体系 是一种 线性结构 非线性结构 List SqList LinkList 顺序存储 链表存储 关系/逻辑结构 线性表 栈 队列 双队列 串 ...... 树 图 DS.数据结构 存储/物理结构 顺序存储 ..... 抽象数据类型 注: (A为 抽象 、B为 数据 、T为 类型 ) ADT Complex{ ① 数据对象 : D={e1,e2| e1,e2∈ RealSet } ② 数据关系 : R={<e1,e2>| e1 是复数的 实数部分 , e2 是负数的 虚数部分 。 ③ 基本操作 : AssignComplex(&Z,V1, V2) 操作结果:构造复数Z,其实部和虚部分别被赋以参数V1和V2的值。 DestroyComplex(&Z)

【学习总结】《大话数据结构》- 第1章-数据结构绪论

非 Y 不嫁゛ 提交于 2020-02-25 10:02:01
【学习总结】《大话数据结构》- 总 启示: 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。 目录 1.1 开场白 1.2 你数据结构怎么学的? 1.3 数据结构起源 1.4 基本概念和术语 1.5 逻辑结构和物理结构 1.6 抽象数据类型 1.7 总结回顾 1.8 结尾语 ---------------------------------------------- 1.1 开场白 一些可以略过的场面话... 1.2 你数据结构怎么学的? 举了一个在实时排队系统中使用队列结构而不是数组或者数据库的栗子 说明数据结构的重要性 1.3 数据结构起源 数据结构发展历程 1986年:作为一门独立课程在CS学位课程中出现 70年代初,结构程序设计成为程序设计方法学的主要内容,数据结构在程序设计中占据重要地位 1.4 基本概念和术语 程序设计=数据结构+算法 数据: 描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别、并输入给计算机处理的符号集合。 (包括数值、声音、图像、视频等各种符号) 符合两个条件: 可以输入到计算机中 能被计算机程序处理 数据元素: 组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。 (人类的数据元素:人) (禽类的数据元素:鸡鸭鹅) 数据项: 一个数据元素可以由若干数据项组成。数据项是数据不可分割的最小单位。 (人元素

数据类型和抽象数据类型

笑着哭i 提交于 2020-02-22 18:18:51
一、数据类型 数据类型是一组性质相同的值的集合和定义在这个值集上的一组操作的总称,是某种程序设计中已经实现的数据结构。 二、抽象数据类型(ADT) 1.定义 :由用户定义的表示应用问题的数据模型,即数据结构以及定义在此结构上的一组运算。 2.特征: (1)数据抽象:用ADT描述程序程序处理的实体时,强调的是其本质特征、其所能完成的功能以及它和外部用户的接口(即外部使用它的方法)。 (2)数据封装:将实体的外部特性和其内部实现细节分离,并对外部隐藏其内部实现细节。 3.抽象数据类型的形式化定义 ADT=(D,R,P),其中D表示数据对象;R表示在D上关系的集合;P表示在D上操作的集合。 基本格式: ADT抽象数据类型名{ 数据对象D;<数据对象的定义> 数据关系R;<数据关系的定义> 基本操作P;<基本操作的定义> }ADT抽象数据类型名; 其中基本操作P的格式为: 基本操作名(参数表) 初始条件:<初始条件描述> 操作结果:<操作结果描述> 注:“引用参数(&打头)既能提供输入值,还能返回操作结果 来源: CSDN 作者: gets_s 链接: https://blog.csdn.net/gets_s/article/details/104445458

背包抽象数据类型

限于喜欢 提交于 2020-02-08 21:53:29
一 代码 package common; import java.util.Iterator; import java.util.NoSuchElementException; public class Bag<Item> implements Iterable<Item> { private Node<Item> first; // beginning of bag private int n; // number of elements in bag // helper linked list class private static class Node<Item> { private Item item; private Node<Item> next; } public Bag() { first = null; n = 0; } public boolean isEmpty() { return first == null; } public int size() { return n; } public void add(Item item) { Node<Item> oldfirst = first; first = new Node<Item>(); first.item = item; first.next = oldfirst; n++; } public

浅谈如何学习数据结构与算法[@初学者]

自闭症网瘾萝莉.ら 提交于 2020-02-07 01:57:52
导语 所谓“数据结构”,一般来说是“数据结构与算法”,是NOIPer/NOIer、本科生、硕士生、程序员都会学的一门课程,是程序员的必修课。 数据结构为什么要学? 我们使用计算机,希望它能帮助我们解决各种各样的问题,但随着发展—— 我们希望它运行得更快, 希望它能处理更多数据,希望它做一些原本不可能的事情…… 计算机科学不断改变着这个世界,但代价可能是高昂的。 好的算法设计可以做得更好,而且可能很便宜;劣质的算法就不得不花费更高昂的代价。 事实上,我们可能认为提高算力就能忽略劣质算法的影响。诚然,我们也在努力提高计算机算力,但即使强如超级计算机,也无法挽救一个错误的算法。 希望很多人能正视这个问题,因为数据结构与算法真的值得学习。 学科基础 学习数据结构与算法不需要太多的基础知识,但需要你熟练掌握一门编程语言。 至少给你C/C++/Java/Python的代码你能看得懂,让你用自己熟练的编程语言能轻松实现,这样就很棒了。 至于二分查找、冒泡排序、数组之类的内容我觉得是一个刚刚入门计算机科学的孩纸就应该会的,所以就很基础,没啥可说的,该会,对吧?(比如你连冒泡排序都不会,你咋学快排啥的,对吧?) 最好有一些经验积累,我在学数据结构之前就能在一定程度上运用Java的集合框架,看过比如java.util.ArrayList啊,java.util.LinkedList这样的类的源码

算法与数据结构一:基本概念

a 夏天 提交于 2020-02-02 10:51:31
程序 = 数据结构 + 算法 一、算法的五个特性 算法(algorithm)是解决特定问题求解步骤的描述,在计算机中表现为有限的操作序列。 输入(Input):算法必须有输入量,用以刻画算法的初始条件(特殊情况也可以没有输入量,这时算法本身定义了初始状态); 输出(Output):算法应有一个或以上输出量,输出量是算法计算的结果。没有输出的算法毫无意义。 明确性(Definiteness):算法的描述必须无歧义,以保证算法的实际执行结果是精确地匹配要求或期望,通常要求实际运行结果是确定的。 有限性(Finiteness):算法必须在有限个步骤内完成任务。 有效性(Effectiveness):算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现(又称可行性)。 二、数据结构 指相互之间存在一种或多种特定关系的数据元素的集合用计算机存储、组织数据的方式。数据结构分别为逻辑结构、(存储)物理结构和数据的运算三个部分。 2.1 逻辑结构 逻辑结构(logical structure) 是指在数据中数据元素之间的相互关系。数据元素之间存在不同的逻辑关系构成了以下4种结构类型。 (1)集合结构:集合的数据元素没有其他关系,仅仅是因为他们挤在一个被称作“集合”的盒子里。 (2)线性结构:线性的数据元素结构关系是一对一的,并且是一种先后的次序,就像a-b-c-d-e-f-g····

数据结构和算法(数据结构引入)

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