A. 数据结构基本概念
数据结构概念包含三方面:数据的逻辑结构、数据的存储结构、对数据的操作
一、数据的逻辑结构
1、数据的逻辑结构是指数据元素之间的逻辑关系,用一个数据元素的集合和定义在此集合上的若干关系表示。
2、数据结构分为三种:线性结构、树结构、图
其中树和图是非线性结构。
(1)线性结构:是具有线性关系的数据结构,线性表的元素是有序数列,每个元素(除了头和尾)有且仅有一个前驱和后继。
(2)树结构:数据元素之间具有层次关系的一种非线性结构,树种数据元素通常称为结点。树结构的层次关系是指---->根结点没有前驱结点,除了根以外的其他结点有且仅有一个父母结点,所有结点可有多个或零个后继结点,或称孩子结点。
(3)图:每个数据元素可有多个前驱元素和多个后继元素。
3、数据元素及其关系在计算机中的存储表示或实现称为“数据的存储结构”,也称物理结构
二、数据的存储结构
1、数据的逻辑结构从逻辑关系的角度观察数据,它与数据的存储无关,独立于计算机,而数据的存储结构是逻辑结构在计算机内存中的实现,依赖于计算机。
2、数据的存储结构基本形式有两种:顺序存储结构、链式存储结构
(通常数组实现顺序存储结构、链表实现链式存储结构)
(1)顺序存储结构:使用一租连续的内存单元一次存放数据元素,数据元素在内存中的物理存储顺序与他们的逻辑顺序相同,即每个元素与其前驱元素以及后继元素的存储位置相邻。
(2)链式存储结构:使用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻,数据元素之间的关系需要采用附加信息特别指定。通常像链表那样,采用指针变量来记录前驱和后继元素的地址,c语言采用指针,Java采用引用。
三、对数据的操作
1、每中数据结构都需要一组对其元素实现特定功能的操作:
比如:初始化、判空、存、取、插入、删除、排序等等操作。
四、数据类型与抽象数据类型
1、数据类型
类型是具有相同意义的一组值的集合,数据类型是指一个类型和定义在这个类型上的操作集合,数据类型定义了数据的性质,取值范围以及对数据所能进行的各种操作。
(Java的基本数据类型包括:整数类型,浮点类型等等)
2、抽象数据类型
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
比如复数的抽象数据类型:
3、数据抽象
是指“定义”和“实现”相分离,类似与接口的定义与实现。
四、数据结构基本区别
B. 在数据结构中数据、数据元素、数据对象、数据结构、存储结构、数据类型以及抽象数据类型的定义分别是什么
数据:是能输入到计算机中并能被计算机程序处理的符号的总称。
数据元素:是数据的基本单位,它在计算机处理和程序设计中通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成。
数据对象:是具有相同特征的数据元素的集合,是数据的一个子集。
数据结构:是数据元素的组织形式,或数据元素相互之间存在一种或多种特定关系的集合。
数据的存储结构:是数据的逻辑结构在计算机内存中的存储方式,又称物理结构。
数据类型:是一组具有相同性质的操作对象以及该组操作对象上的运算方法的集合。
抽象数据类型:是指一个数学模型以及在该模型上定义的一套运算规则的集合。
C. 数据结构里抽象数据类型定义有什么用
使人们能够独立于程序的实现细节来理解数据结构的特性。
抽象数据类型通常是对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据操作的集合。
例如,各种高级程序设计语言中都有“整数”类型,尽管它们在不同处理器上实现的方法不同,但对程序员而言是“相同的”,即数学特性相同。从“数学抽象”的角度看,可称它为一个“抽象数据类型”。
抽象数据类型的特征是将使用与实现分离,从而实行封装和隐藏信息。抽象数据类型通过一种特定的数据结构在程序的某个部分得以实现,只关心在这个数据类型上的操作,而不关心数据结构具体实现。
(3)存储计算分离和数据抽象实践扩展阅读
数据结构里将问题通过实体分析,分层分类地实现抽象数据类型,从而进行简单应用编程(基于对象编程)以数据抽象为主的抽象编程。
这种抽象编程,通过数据类型复用,方便编程,方便维护和扩展,其效果比过程化编程更好编程语言中没有许多具体的数据类型
要解决实际问题,很大部分工作是要建立数据模式与实际问题的对应,也就是建立抽象数据类型的过程对象化编程就是基于分层分类的抽象数据类型之具体编程,它能更好地实现数据结构和算法,便是将N.Wirth的程序公式:
程序=算法+数据结构具体化为:程序=算法+抽象数据类型。
D. 云存储数据中心常用的网络存储技术有哪些
直连式存储、网络存储设备和存储网络。
一切以客户的需求为出发点。传统存储以文件系统为典型代表,但是随着数据爆炸性增长,传统文件系统已经无法满足对存储系统的容量、性能等需求,因此,云存储应运而生。
云存储最大的特点是数据被集中存储在数据中心,公有云存储将客户数据存放在公有云服务商数据中心,而私有云存储则是将公有云存储能力私有化部署在客户自身的数据中心。
原则就是要尽可能把实际的物理介质索引,存储的数据库,数据存储的磁盘抽象出来,在上层具有一个可拓展,可迁移的逻辑单元,当然对象存储系统之间差异也很大,从潮流上看,基本都摒弃了索引的中心化存储方案,在寻址方面也各有各的花招。
云计算关键技术云计算是分布式处理、并行计算和网格计算等概念的发展和商业实现,其技术实质是计算、存储、服务器、应用软件等IT软硬件资源的虚拟化,云计算在虚拟化、数据存储、数据管理、编程模式等方面具有自身独特的技术。
E. 云计算和传统IT相比,有着怎样的巨大优势
在云计算走向成熟之前,我们更应该关注系统云计算架构的细节,从传统的架构到云上大数据,实现了很多的转变。传统的大数据平台计算和数据一般都在一起,到云上之后计算后可能为虚拟机、或容器,存储和计算是分离的。任何计算节点访问存储时都是通过高速互联网络把数据迁移到本地来,实现的优势也就是大数据的服务化,灵活配置。因此,借助强大的计算性能,结合云计算平台的优势,从传统架构的大数据平台向云上数据的转变,将给用户提供更高的灵活性和管理,并能够为用户节省大量的成本。
云服务器体系架构包含云处理器模块、网络处理模块、存储处理模块与系统模块等。这种架构的优势使得云服务器可以大幅提高利用率。采用多个云处理器完成系统设计,引入低功耗管理方案完成对系统的集中冗余管理,同时优化系统设计,去除重复硬件。经过高效的资源整合,提高利用率,从而使得性价比得以提升,引起网站服务器租用价格的降低。
云服务器凭借其合理的网站服务器租用价格,为各类企业节省大量的业务成本,从而赢得不少企业的青睐。
F. 数据结构的基本方法是怎样的。及其基本思想
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
算法的设计取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的存储结构实质上是它的逻辑结构在计算机存储器中的实现,为了全面的反映一个数据的逻辑结构,它在存储器中的映象包括两方面内容,即数据元素之间的信息和数据元素之间的关系。不同数据结构有其相应的若干运算。数据的运算是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更新和排序等。
数据的运算是数据结构的一个重要方面,讨论任一种数据结构时都离不开对该结构上的数据运算及其实现算法的讨论。
数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。数据类型可分为两类:原子类型、结构类型。一方面,在程序设计语言中,每一个数据都属于某种数据类型。类型明显或隐含地规定了数据的取值范围、存储方式以及允许进行的运算。可以认为,数据类型是在程序设计中已经实现了的数据结构。另一方面,在程序设计过程中,当需要引入某种新的数据结构时,总是借助编程语言所提供的数据类型来描述数据的存储结构。
计算机中表示数据的最小单位是二进制数的一位,叫做位。我们用一个由若干位组合起来形成的一个位串表示一个数据元素,通常称这个位串为元素或结点。当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域。元素或结点可看成是数据元素在计算机中的映象。
一个软件系统框架应建立在数据之上,而不是建立在操作之上。一个含抽象数据类型的软件模块应包含定义、表示、实现三个部分。
对每一个数据结构而言,必定存在与它密切相关的一组操作。若操作的种类和数目不同,即使逻辑结构相同,数据结构能起的作用也不同。
不同的数据结构其操作集不同,但下列操作必不可缺:
1,结构的生成;
2.结构的销毁;
3,在结构中查找满足规定条件的数据元素;
4,在结构中插入新的数据元素;
5,删除结构中已经存在的数据元素;
6,遍历。
抽象数据类型:一个数学模型以及定义在该模型上的一组操作。抽象数据类型实际上就是对该数据结构的定义。因为它定义了一个数据的逻辑结构以及在此结构上的一组算法。抽象数据类型可用以下三元组表示:(D,S,P)。D是数据对象,S是D上的关系集,P是对D的基本操作集。ADT的定义为:
ADT 抽象数据类型名:{数据对象:(数据元素集合),数据关系:(数据关系二元组结合),基本操作:(操作函数的罗列)}; ADT抽象数据类型名;抽象数据类型有两个重要特性:
数据抽象
用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)。
数据封装
将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节。
数据(Data)是信息的载体,它能够被计算机识别、存储和加工处理。它是计算机程序加工的原料,应用程序处理各种各样的数据。计算机科学中,所谓数据就是计算机加工处理的对象,它可以是数值数据,也可以是非数值数据。数值数据是一些整数、实数或复数,主要用于工程计算、科学计算和商务处理等;非数值数据包括字符、文字、图形、图像、语音等。数据元素(Data Element)是数据的基本单位。在不同的条件下,数据元素又可称为元素、结点、顶点、记录等。例如,学生信息检索系统中学生信息表中的一个记录等,都被称为一个数据元素。
有时,一个数据元素可由若干个数据项(Data Item)组成,例如,学籍管理系统中学生信息表的每一个数据元素就是一个学生记录。它包括学生的学号、姓名、性别、籍贯、出生年月、成绩等数据项。这些数据项可以分为两种:一种叫做初等项,如学生的性别、籍贯等,这些数据项是在数据处理时不能再分割的最小单位;另一种叫做组合项,如学生的成绩,它可以再划分为数学、物理、化学等更小的项。通常,在解决实际应用问题时是把每个学生记录当作一个基本单位进行访问和处理的。
数据对象(Data Object)或数据元素类(Data Element Class)是具有相同性质的数据元素的集合。在某个具体问题中,数据元素都具有相同的性质(元素值不一定相等),属于同一数据对象(数据元素类),数据元素是数据元素类的一个实例。例如,在交通咨询系统的交通网中,所有的顶点是一个数据元素类,顶点A和顶点B各自代表一个城市,是该数据元素类中的两个实例,其数据元素的值分别为A和B。 数据结构(Data Structure)是指互相之间存在着一种或多种关系的数据元素的集合。在任何问题中,数据元素之间都不会是孤立的,在它们之间都存在着这样或那样的关系,这种数据元素之间的关系称为结构。
G. 数据存储在OBS和HDFS有什么区别我是指华为云的数据存储.
MRS集群处理的数据源来源于OBS或HDFS,HDFS是Hadoop分布式文件系统(Hadoop Distributed File System),OBS(Object Storage Service)即华为对象存储服务,是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。MRS可以直接处理OBS中的数据,客户可以基于云管理平台Web界面和OBS客户端对数据进行浏览、管理和使用,同时可以通过REST API接口方式单独或集成到业务程序进行管理和访问数据。
数据存储在OBS:数据存储和计算分离,集群存储成本低,存储量不受限制,并且集群可以随时删除,但计算性能取决于OBS访问性能,相对HDFS有所下降,建议在数据计算不频繁场景下使用。
数据存储在HDFS:数据存储和计算不分离,集群成本较高,计算性能高,但存储量受磁盘空间限制,删除集群前需将数据导出保存,建议在数据计算频繁场景下使用。
H. 什么是对程序要处理的数据的抽象和组成
类型是一个与数据结构密切相关的概念。它最早出现在高级编程语言中,用于描述程序中操作对象的特性。在用高级语言编写的程序中,每个变量、常数或表达式都有其所属的特定数据类型。类型显式或隐式地指定程序执行期间变量或表达式值的所有可能范围,以及对这些值允许的操作。因此,数据类型是一组值和在这组值上定义的一组操作。
在高级编程语言中,数据类型可以分为两类:原子类型和结构类型。原子的价值是不可分解的。如C语言中的整型、字符型、浮点型、双精度型等基本类型,分别用保留字int、char、float、double来标识。结构类型的值是按照一定的结构由几个分量组成的,所以可以分解,其分量可以是非结构化的,也可以是结构化的。例如,数组的值由几个部分组成,每个部分可以是整数或数组。从某种意义上说,数据结构可以看作是“一组结构相同的值”,而数据类型可以看作是一个数据结构和在其上定义的一组操作。
抽象数据类型
抽象数据类型(ADT)是指一个数学模型和在该模型上定义的一组操作。抽象数据类型的定义取决于它的一组逻辑特征,但与它在计算机中的表示和实现方式无关。即无论其内部结构如何变化,只要其数学特性不变,就不会影响其外部使用。
抽象数据类型和数据类型本质上是一个概念。比如各种计算机拥有的integer类型就是一种抽象数据类型。尽管它们可以在不同的处理器上以不同的方式实现,但由于相同的数学特征,它们在用户看来都是一样的。所以“抽象”的意义在于数据类型的数学抽象。
另一方面,抽象数据类型的范畴更广,不再局限于前述处理器中定义和实现的数据类型,还包括用户在设计软件系统时自己定义的数据类型。为了提高软件的可重用性,在现代编程方法论中,需要在构成软件系统的每个相对独立的模块上定义一组数据和一组应用于这些数据的操作,并在模块内部给出这些数据的表示和它们操作的细节,而在模块外部只使用抽象的数据和操作。这就是面向对象的编程方法。
抽象数据类型的定义可以由一个数据结构和其上定义的一组操作组成,数据结构包括数据元素和元素之间的关系,所以抽象数据类型一般可以由元素、关系和操作来定义。
抽象数据类型的特点是使用与实现分离、封装和信息隐藏。也就是说,在抽象数据类型的设计中,类型的定义与其实现是分离的。