前言:
现在小伙伴们对“建立图的存储结构算法”都比较注重,姐妹们都需要分析一些“建立图的存储结构算法”的相关文章。那么小编同时在网络上汇集了一些有关“建立图的存储结构算法””的相关资讯,希望咱们能喜欢,你们快快来学习一下吧!现实世界中的所有问题都可以归类为两大类:
数值计算问题:如概率统计、求极限、求面积,该类问题一般采用数学建模、公式推导来解决;非数值计算问题:如图书管理问题、对弈问题、路由问题,该类问题一般使用数据结构与算法来解决;
程序设计(也就是利用编程来解决现实生活中的非数据计算问题)主要关注两个方面:
数据表示:考虑如何将待处理的数据存储到计算机中,其本质是数据结构设计(研究如何将现实生活中的复杂数据合理高效的存储在计算机中的方法);数据处理:使用何种逻辑来操作这些数据,其本质是算法设计(研究面对实际问题需要进行的操作如增加、删除、修改、查找某一本书的方法,简单来说算法主要研究如何进行高效稳定的查询、删除以及其他操作);
不同的数据结构设计会对应不同的算法设计,进而导致设计的程序具有不同的执行效率。
数据结构(data structure),是指按照某种逻辑关系组织起来的一组数据,按一定的存储方式存储在计算机的存储器中,并在这些数据上定义了一组运算的集合。通常人们认为数据结构包含以下 3 个方面的内容
数据元素之间的逻辑关系,也称为数据的逻辑结构(logical structure)数据元素及其关系在计算机存储器内的存储形式,称为数据的存储结构(storage structure)或物理结构对数据的基本操作或运算
1.数据结构的基本概念
数据(data),是信息的载体,能够被计算机识别、存储和加工处理。在计算机领域中,人们通常将数据分为两大类:一类是数值型数据,如代数方程求解程序中所使用的整数或实数数据;另一类是非数值型数据,如音视频播放器程序播放的声音或视频、互联网络中的Web数据等。数据元素(data element),是数据的基本单位,在计算机程序中通常作为一个整体进行处理。例如,学生成绩单中每个学生的信息就是一个数据元素。有些情况下,数据元素也称为元素、结点、顶点或记录。数据项(data item),是构成数据元素的不可分割的最小单位。每个数据元素可以包含多个不同的数据项,每个数据项具有独立的含义。例如,学生成绩单中每个学生的信息可以包含学生的班级、学号、姓名、成绩等,这些都是数据项。有时也将数据项称为字段或域。数据对象:具有相同性质的数据元素的集合,是数据的一个子集。数据类型(data type),是具有相同性质的计算机数据的集合以及在这个数据集合上的一组操作(简记为“一个值得集合和定义在这个值集合上的一组运算的总称”)。数据类型可以分为简单类型(或称为原子类型)和构造类型(或称为结构类型)。例如,C++语言中,整数、实数、字符等都是简单的数据类型,而数组、结构类型、类等都是构造类型。每种类型的数据都有各自的特点及相关运算。可以将一种数据类型看成是一种实例化了的数据结构。1.1 逻辑结构
数据的逻辑结构描述了数据相互间的关联形式或邻接形式,反映了数据内部的构成方式,定义了数据的本质特点,因此人们常常将数据的逻辑结构直接称为数据结构。数据的逻辑结构独立于计算机,与存储方式无关,可认为是从具体问题抽象出来的数学模型。数据元素之间不同的逻辑特点代表不同的逻辑结构,常见的逻辑结构有4种,分别是集合、线性结构、树和图。
集合,其数据元素之间的逻辑特点是满足“共同属于一个集合”的关系。通常要求集合中的元素不可重复,不考虑元素之间的先后次序。线性结构,其数据元素之间的逻辑特点是有且只有一个起始结点和一个终端结点,并且其他结点的前面有且只有一个结点(称为直接前驱),每个结点的后面有且只有一个结点(称为直接后继)。线性结构的数据元素之间在一维线性空间中有确定的先后次序。非线性结构,这种结构区别于集合和线性结构树结构,其数据元素之间存在着一对多的层次关系。图结构,数据元素之间存在着多对多的关系。1.2 存储结构
数据的存储结构考虑的是如何在计算机的存储器中存储各个数据元素,并且同时反映数据元素间的逻辑关系。对于每种逻辑结构,都可以设计多种存储方法,基本的存储结构通常有两大类:顺序存储结构和链式存储结构。
顺序存储结构,即用一组连续的存储单元依次存储各个数据元素。数据元素间的逻辑关系由存储单元的邻接关系来体现。通常顺序存储结构借助于程序设计语言的数组来描述。链式存储结构,即用一组任意的存储单位存储各个数据元素,数据元素间的关系通常用指针来表示,例如,后一个元素的地址存储在前一个元素的某个特定数据项中。
标签: #建立图的存储结构算法 #数据结构中是什么意思