精华内容
下载资源
问答
  • 数据结构——什么是数据结构
    千次阅读 多人点赞
    2018-01-23 18:27:01
    什么是数据结构
    1.数据结构的有关定义
         (1)数据结构: 是带有结构数据元素的集合
         (2)数据:是客观事物的数值、字符以及能输入机器且能被处理的各种符号的集合
                                    编译                                   链接
              源程序(.c)--------->目标程序(.obj)---------->可执行程序(.exe)
         (3)数据对象:是性质相同的数据元素的集合
         (4)数据类型:一组性质相同的值的集合以及定义在这个值的集合上的一些操作的总称
                          int:[-32767~+32768]   以及在他们身上的加、减、乘、除、取余操作
         (5)抽象数据类型:int、char、float、double、表、队、栈、图、窗口
    2.数据结构需要学习3个方面:
         (1)数据元素之间的关系: 逻辑结构
         (2)数据在计算机中的存储方法: 物理结构
         (3)作用于数据结构上的运算: 算法


    逻辑结构:


      (1)集合结构:仅属于同一个集合
      (2)线性结构:1对1
      (3)树型结构:1对多
      (4)图型结构:多对多

    物理结构:

      (1)顺序存储结构
      (2)链式存储结构

    3.算法:是规则的有限集合,为了解决特定的问题而产生一系列的操作
    4.算法的特性:
         (1) 有限性:在有限步骤内完成
         (2) 确定性:每个步骤必须有确定的含义,不可以有二义性
         (3)输入:有多个或0个输入
         (4)输出:至少有一个或多个输出
         (5) 可行性:操作通过已实现的基本运算执行有限次而完成
    5.算法的要求:(1)算法正确性 (2)可读性 (3)健壮性(输入离谱的值,看他容不容易被干扰) (4)高效和低内存占用



























    更多相关内容
  • 什么是数据结构

    千次阅读 2019-06-19 20:25:39
    什么是数据结构?数据结构是什么? 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据...

    什么是数据结构?数据结构是什么?

     

    数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

     

    定义

    名词定义

    数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。也就是说,数组结构指的是数据集合及数据之间关系的集合,是两个集合。

    记为:Data_Structure=(D,R)

    其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。 

    数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。

     

    其它定义

    Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实 例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。
    Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是ADT(抽象数据类型Abstract Data Type) 的物理实现。”
    Robert L.Kruse在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。
    数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。

     

    研究对象

    一、数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。逻辑结构包括:
    集合
    数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;
    2.线性结构
    数据结构中的元素存在一对一的相互关系;
    3.树形结构
    数据结构中的元素存在一对多的相互关系;
    4.图形结构
    数据结构中的元素存在多对多的相互关系。
    二、数据的物理结构:指数据的逻辑结构在计算机存储空间的存放形式。 
    数据的物理结构是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。
    数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)。当数据元素有若干个数据项组成时,位串中与个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。
    关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。
    三、数据结构的运算。

     

    重要意义

              一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。

             在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。

             选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。

     

    研究内容

             在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。

             “数据结构”作为一门独立的课程在国外是从1968年才开始设立的。 1968年美国唐纳德·克努特(Donald Ervin Knuth)教授开创了数据结构的最初体系,他所著的《计算机程序设计艺术》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。“数据结构”在计算机科学中是一门综合性的专业基础课,数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。

             计算机科学是一门研究用计算机进行信息表示和处理的科学。这里面涉及到两个问题:信息的表示,信息的处理 。

             而信息的表示和组织又直接关系到处理信息的程序的效率。随着计算机的普及,信息量的增加,信息范围的拓宽,使许多系统程序和应用程序的规模很大,结构又相当复杂。因此,为了编写出一个“好”的程序,必须分析待处理的对象的特征及各对象之间存在的关系,这就是数据结构这门课所要研究的问题。众所周知,计算机的程序是对信息进行加工处理。在大多数情况下,这些信息并不是没有组织,信息(数据)之间往往具有重要的结构关系,这就是数据结构的内容。数据的结构,直接影响算法的选择和效率。

             计算机解决一个具体问题时,大致需要经过下列几个步骤:首先要从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法(Algorithm),最后编出程序、进行测试、调整直至得到最终解答。

             寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。当人们用计算机处理数值计算问题时,所用的数学模型是用数学方程描述。所涉及的运算对象一般是简单的整形、实型和逻辑型数据,因此程序设计者的主要精力集中于程序设计技巧上,而不是数据的存储和组织上。然而,计算机应用的更多领域是“非数值型计算问题”,它们的数学模型无法用数学方程描述,而是用数据结构描述,解决此类问题的关键是设计出合适的数据结构,描述非数值型问题的数学模型是用线性表、树、图等结构来描述的。

             计算机算法与数据的结构密切相关,算法无不依附于具体的数据结构,数据结构直接关系到算法的选择和效率。运算是由计算机来完成,这就要设计相应的插入、删除和修改的算法 。也就是说,数据结构还需要给出每种结构类型所定义的各种运算的算法。

             数据是信息的载体,是可以被计算机识别存储并加工处理的描述客观事物的信息符号的总称。所有能被输入计算机中,且能被计算机处理的符号的集合,它是计算机程序加工处理的对象。客观事物包括数值、字符、声音、图形、图像等,它们本身并不是数据,只有通过编码变成能被计算机识别、存储和处理的符号形式后才是数据。

             数据元素是数据的基本单位,在计算机程序中通常作为一个整体考虑。一个数据元素由若干个数据项组成。数据项是数据结构中讨论的最小单位。有两类数据元素:若数据元素可再分,则每一个独立的处理单元就是数据项,数据元素是数据项的集合;若数据元素不可再分,则数据元素和数据项是同一概念,如:整数"5",字符 "N" 等。例如描述一个学生的信息的数据元素可由下列6个数据项组成。其中的出生日期又可以由三个数据项:"年"、"月"和"日"组成,则称"出生日期"为组合项,而其它不可分割的数据项为原子项。

             关键字指的是能识别一个或多个数据元素的数据项。若能起唯一识别作用,则称之为 "主" 关键字,否则称之为 "次" 关键字。

             数据对象是性质相同的数据元素的集合,是数据的一个子集。数据对象可以是有限的,也可以是无限的。

             数据处理是指对数据进行查找、插入、删除、合并、排序、统计以及简单计算等的操作过程。在早期,计算机主要用于科学和工程计算,进入八十年代以后,计算机主要用于数据处理。据有关统计资料表明,计算机用于数据处理的时间比例达到80%以上,随着时间的推移和计算机应用的进一步普及,计算机用于数据处理的时间比例必将进一步增大。

     

    结构分类

             数据结构是指同一数据元素类中各数据元素之间存在的关系。数据结构分别为逻辑结构、存储结构(物理结构)和数据的运算。数据的逻辑结构是从具体问题抽象出来的数学模型,是描述数据元素及其关系的数学特性的,有时就把逻辑结构简称为数据结构。逻辑结构是在计算机存储中的映像,形式地定义为(K,R)(或(D,S)),其中,K是数据元素的有限集,R是K上的关系的有限集。

             根据数据元素间关系的不同特性,通常有下列四类基本的结构: ⑴集合结构。该结构的数据元素间的关系是“属于同一个集合”。 ⑵线性结构。该结构的数据元素之间存在着一对一的关系。 ⑶树型结构。该结构的数据元素之间存在着一对多的关系。 ⑷图形结构。该结构的数据元素之间存在着多对多的关系,也称网状结构。 从上面所介绍的数据结构的概念中可以知道,一个数据结构有两个要素。一个是数据元素的集合,另一个是关系的集合。在形式上,数据结构通常可以采用一个二元组来表示。

             数据结构的形式定义为:数据结构是一个二元组 :Data_Structure=(D,R),其中,D是数据元素的有限集,R是D上关系的有限集。线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据元素构成的线性结构。在实际问题中线性表的例子是很多的,如学生情况信息表是一个线性表:表中数据元素的类型为学生类型; 一个字符串也是一个线性表:表中数据元素的类型为字符型,等等。

             线性表是最简单、最基本、也是最常用的一种线性结构。 线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,通常记为: (a1,a2,… ai-1,ai,ai+1,…an) ,其中n为表长, n=0 时称为空表。 它有两种存储方法:顺序存储和链式存储,它的主要基本操作是插入、删除和检索等。

             数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。它包括数据元素的表示和关系的表示。数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。

             顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。

             链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构,链式存储结构通常借助于程序设计语言中的指针类型来实现

             索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。

             散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。

             数据结构中,逻辑上(逻辑结构:数据元素之间的逻辑关系)可以把数据结构分成线性结构和非线性结构。线性结构的顺序存储结构是一种顺序存取的存储结构,线性表的链式存储结构是一种随机存取的存储结构。线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。逻辑结构与数据元素本身的形式、内容、相对位置、所含结点个数都无关。

     

    结构算法

             算法的设计取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的存储结构实质上是它的逻辑结构在计算机存储器中的实现,为了全面的反映一个数据的逻辑结构,它在存储器中的映象包括两方面内容,即数据元素之间的信息和数据元素之间的关系。不同数据结构有其相应的若干运算。数据的运算是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更新和排序等。

             数据的运算是数据结构的一个重要方面,讨论任一种数据结构时都离不开对该结构上的数据运算及其实现算法的讨论。
    数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。

             数据类型是一个值的集合和定义在这个值集上的一组操作的总称。数据类型可分为两类:原子类型、结构类型。一方面,在程序设计语言中,每一个数据都属于某种数据类型。类型明显或隐含地规定了数据的取值范围、存储方式以及允许进行的运算。可以认为,数据类型是在程序设计中已经实现了的数据结构。另一方面,在程序设计过程中,当需要引入某种新的数据结构时,总是借助编程语言所提供的数据类型来描述数据的存储结构。

             计算机中表示数据的最小单位是二进制数的一位,叫做位。我们用一个由若干位组合起来形成的一个位串表示一个数据元素,通常称这个位串为元素或结点。当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域。元素或结点可看成是数据元素在计算机中的映象。

             一个软件系统框架应建立在数据之上,而不是建立在操作之上。一个含抽象数据类型的软件模块应包含定义、表示、实现三个部分。
    对每一个数据结构而言,必定存在与它密切相关的一组操作。若操作的种类和数目不同,即使逻辑结构相同,数据结构能起的作用也不同。

             不同的数据结构其操作集不同,但下列操作必不可缺:
             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)是指互相之间存在着一种或多种关系的数据元素的集合。在任何问题中,数据元素之间都不会是孤立的,在它们之间都存在着这样或那样的关系,这种数据元素之间的关系称为结构。

     

    常用结构

    数组
             在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。


             是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

    队列
             一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列中没有元素时,称为空队列。

    链表
             是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。


             是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:
             (1)有且仅有一个结点 K0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。  
             (2)除K0外,K中的每个结点,对于关系N来说有且仅有一个前驱。
             (3)K中各结点,对关系N来说可以有m个后继(m>=0)。


             图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。


             在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。

    散列表
             若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。

     

    简而言之,数据结构说的是:计算机组织数据和存储数据的方式。

    展开全文
  • 数据结构 大学已逐渐进入尾声,想回顾一下自己专业所学的内容,看到数据结构这些概念,也总是记不住,理解也不是很深刻。想借助写下这些来加深一些印象吧。以下一些相关的内容,来自王道的数据结构讲解。 基本概念 ...

    数据结构

    大学已逐渐进入尾声,想回顾一下自己专业所学的内容,看到数据结构这些概念,也总是记不住,理解也不是很深刻。想借助写下这些来加深一些印象吧。以下一些相关的内容,来自王道的数据结构讲解。
    在这里插入图片描述
    基本概念
    数据结构是相互之间存在一种或多种特定关系的数据元素的集合。这个概念对于我来说太过于深奥,也不能记住,于是我思考。举个例子,在食堂里吃麻辣香锅,我们需要排队,并且食堂阿姨会给你号码牌,我们吃麻辣香锅的人就是数据元素,这个号码牌就是我们的排队信息,我们之间通过号码牌存在一种特定关系,这种存在一种特定关系的集合,便是数据结构。所以可以看出,数据结构是个集合,不能单独存在。这里的数据元素是数据的基本单位,一个数据元素可有若干个数据项组成。吃麻辣香锅的人算是数据元素,我们具有以下数据项,比如姓名,年龄、号数。可以说数据元素也算是数据项的集合吧。
    数据结构与数据对象
    数据结构是一种或多种特定关系数据元素的集合,而数据对象是大范围的,是指具有相同性质的数据元素的集合。是数据的一个子集。这里我觉得应该这样理解,数据元素包括若干数据项,具有相同性质的数据项是数据项的一个子集。举个例子,学校食堂麻辣香锅同学排队的信息的集合是数据结构,在全国麻辣香锅顾客排队信息的集合便是数据对象,可以说数据结构算是数据对象的一个子集吧。
    数据结构三要素
    数据结构三要素包括:逻辑结构、物理结构(存储结构)、数据的运算。
    逻辑结构
    数据的逻辑结构可分为集合,线性结构,树形结构,图状结构(网状结构)。1.集合,不用多讲,吃麻辣香锅的同学便是集合。2.线性结构也比较容易理解。食堂吃饭需要排队,是一对一关系,除了第一个人,所有元素都有唯一前驱。除了最后一人,所有元素都有唯一后继。3。树形结构,数据元素是一对多的关系,比如公司老板他手下有若干名干部,每个干部下又有若干员工。4.图形结构,是多对多的关系,比如朋友这个集合,每个人有属于自己的朋友,我朋友的朋友不是我的朋友,这就是多对多的一种类型。
    物理结构
    物理结构也可称为存储结构,如何用计算机表示数据元素的逻辑关系?也就是如何用计算机存储?
    数据的存储结构可分为顺序存储,链式存储、索引存储、散列存储。
    1.顺序存储,把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现,可用来存储线性结构。
    2.链式存储,逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。也可用来存储线性结构。
    3.索引存储,在存储元素的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项一般形式是(关键字,地址)。也可用来存储线性结构。
    4.散列存储,根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。
    数据的存储结构会影响存储空间分配的方便程度、对数据运算的速度。,若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个元素在物理上可以是离散的。
    数据的运算
    施加在数据上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。
    数据类型、抽象数据类型
    数据类型是一个值的集合和定义在此集合上的一组操作的总称。
    1.原子类型。其值不可再分的数据类型。
    2.结构类型。其值可以再分解为若干成分的数据类型。
    3.抽象数据类型(ADT)是抽象数据组织及与之相关的操作。ADT用数学化的语言定义数据的逻辑结构,定义运算。与具体的实现无关。
    知识回顾与重要考点
    数据结构这门课着重关注的是数据元素之间的关系,和对这些数据元素的操作,而不关心具体的数据项内容。
    在这里插入图片描述
    持续更新,未完待续…

    展开全文
  • 什么是拓扑结构_拓扑结构

    万次阅读 多人点赞 2018-09-09 09:17:01
    什么是拓扑结构?  首先我们来解释一下拓扑的含义,所谓“拓扑”就是把实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”,进而以图的形式来表示这些点与线之间关系的方法,其目的在于研究...

    什么是拓扑结构?
      首先我们来解释一下拓扑的含义,所谓“拓扑”就是把实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”,进而以图的形式来表示这些点与线之间关系的方法,其目的在于研究这些点、线之间的相连关系。表示点和线之间关系的图被称为拓扑结构图。拓扑结构与几何结构属于两个不同的数学概念。在几何结构中,
      我们要考察的是点、线之间的位置关系,或者说几何结构强调的是点与线所构成的形状及大小。如梯形、正方形、平行四边形及圆都属于不同的几何结构,但从拓扑结构的角度去看,由于点、线间的连接关系相同,从而具有相同的拓扑结构即环型结构。也就是说,不同的几何结构可能具有相同的拓扑结构。
      类似地,在计算机网络中,我们把计算机、终端、通信处理机等设备抽象成点,把连接这些设备的通信线路抽象成线,并将由这些点和线所构成的拓扑称为网络拓扑结构。
      网络拓扑结构反映出网络的结构关系,它对于网络的性能、可靠性以及建设管理成本等都有着重要的影响,因此网络拓扑结构的设计在整个网络设计中占有十分重要的地位,在网络构建时,网络拓常见的网络拓扑结构
      在计算机网络中常见的拓扑结构有总线型、星型、环型、树型和网状型等。
      1.总线型拓扑
    这里写图片描述
      如图1.4所示,总线型拓扑中采用单根传输线路作为传输介质,所有站点通过专门的连接器连到这个公共信道上,这个公共的信道称为总线。任何一个站点发送的数据都能通过总线传播,同时能被总线上的所有其他站点接收到。可见,总线型结构的网络是一种广播网络。扑结构往往是首先要考虑的因素之一。
      在总线结构中,总线有一定的负载能力,因此,总线长度有一定限制,一条总线也只能连接一定数量的结点。
      总线布局的特点是:结构简单灵活,非常便于扩充;可靠性高,网络响应速度快;设备量少、价格低、安装使用方便;共享资源能力强,极便于广播式工作即一个结点发送所有结点都可接收。总线型拓扑是基本局域网拓扑形式之一。
      在总线两端连接的器件称为端结器(末端阻抗匹配器、或终止器)。主要与总线进行阻抗匹配,最大限度吸收传送端部的能量,避免信号反射回总线产生不必要的干扰。
      总线形网络结构是目前使用最广泛的结构,也是最传统的一种主流网络结构,适合于信息管理系统、办公自动化系统领域的应用。
      2.星型拓扑
    这里写图片描述
      如图1.5所示,星型拓扑中有一个中心节点,其他各节点通过各自的线路与中心节点相连,形成辐射型结构。各节点间的通信必须通过中心节点的作用,如图A 到B 或A到C 都要经过中心节点D。
      星型拓扑的网络具有结构简单、易于建网和易于管理等特点。但这种结构要耗费大量的电缆,同时中心节点的故障会直接造成整个网络的瘫痪。星型拓扑也经常应用于局域网中。
      星型布局是以中央结点为中心与各结点连接而组成的,各结点与中央结点通过点与点方式连接,中央点执行集中式通信控制策略,因此中央结点相当复杂,负担也重。
      目前流行的PBX就是星型拓扑结构的典型实例,如图1.5(右)所示。
      以星型拓扑结构组网,其中任何两个站点要进行通信都必须经过中央结点控制。中
      央结点主要功能有
      1) 为需要通信的设备建立物理连接
      2) 为两台设备通信过程中维持这一通路
      3) 在完成通信或不成功时,拆除通道
      在文件服务器/工作站(File Server/Workstation )局域网模式中,中心点为文件服务器,存放共享资源。由于这种拓扑结构,中心点与多台工作站相连,为便于集中连线,目前多采用集线器(HUB)。
      星型拓扑结构特点:网络结构简单,便于管理、集中控制, 组网容易;网络延迟时间短,误码率低,网络共享能力较差,通信线路利用率不高,中央节点负担过重,可同时连双绞线、同轴电缆及光纤等多种媒介。
      树型拓扑结构可以看作成星型拓扑的一种扩展,也称扩展星型拓扑。
      3.环型拓扑
    这里写图片描述
      如图1.6 所示,在环型拓扑中,各节点和通信线路连接形成的一个闭合的环。在环路中,数据按照一个方向传输。发送端发出的数据,延环绕行一周后,回到发送端,由发送端将其从环上删除。我们可以看到任何一个节点发出的数据都可以被环上的其他节点接收到。
      环型拓扑具有结构简单,容易实现,传输时延确定以及路径选择简单等优点,但是,网络中的每一个节点或连接节点的通信线路都有可能成为网络可靠性的瓶颈。当网络中的任何一个节点出现故障都可能会造成网络的瘫痪。另外,在这种拓扑结构中,节点的加入和拆除过程比较复杂。环型拓扑也是局域网中常用的一种拓扑形式。
      环形网的特点是:信息在网络中沿固定方向流动,两个结点间仅有唯一的通路,大大简化了路径选择的控制;某个结点发生故障时,可以自动旁路,可靠性较高;由于信息是串行穿过多个结点环路接口,当结点过多时,影响传输效率,使网络响应时间变长。但当网络确定时,其延时固定,实时性强;由于环路封闭故扩充不方便。
      环形网也是微机局域网常用拓扑结构之一,适合信息处理系统和工厂自动化系统。1985年IBM公司推出的令牌环形网(IBM Token Ring)是其典范。在FDDI得以应用推广后,这种结构会进一步得到采用。
      4.网状拓扑
    这里写图片描述
      在网状拓扑结构中,节点之间的连接是任意的,每个节点都有多条线路与其他节点相连,这样使得节点之间存在多条路径可选,如图1.7中从A 到C 可以是A-B-C 也可以是A-D-B-C,在传输数据时可以灵活的选用空闲路径或者避开故障线路。
      可见网状拓扑可以充分、合理的使用网络资源,并且具有可靠性高的优点。我们知道,广域网覆盖面积大,传输距离长,网络的故障会给大量的用户带来严重的危害,因此在广域网中,为了提高网络的可靠性通常采用网状拓扑结构,如图1.7(右)所示为一个简单的广域网示意图。
      但是我们也应该看到,这个优点是以高投资和高复杂的管理为代价的。将多个子网或多个局域网连接起来构成网状型拓扑结构。在一个子网中,集线器、中继器将多个设备连接起来,而桥接器、路由器及网关则将子网连接起来。根据组网硬件不同,主要有三种网状型拓扑:
      网状网:在一个大的区域内,用无线通信连路连接一个大型网络时,网状网是最好的拓扑结构。通过路由器与路由器相连,可让网络选择一条最快的路径传送数据。
      主干网:通过桥接器与路由器把不同的子网或LAN 连接起来形成单个总线或环型拓扑结构,这种网通常采用光纤做主干线。
      星状相连网:利用一些叫做超级集线器的设备将网络连接起来,由于星型结构的特点,网络中任一处的故障都可容易查找并修复。应该指出,在实际组网中,拓扑结构不一定是单一的,通常是几种结构的混用。
    这里写图片描述
      比如,将总线型与星型结合起来就形成了总线型/星型拓扑结构,用一条或多条总线把多组设备连接起来,相连的每组设备呈星型分布。采用这种拓扑结构,用户很容易配置和重新配置网络设备。如图1.8 所示。

    展开全文
  • 什么说线索二叉树是一种物理结构

    千次阅读 多人点赞 2021-04-07 19:06:16
    通过逻辑结构和存储结构的精确定义我们可以发现,存储结构是 依赖于计算机语言 的,当我们用计算机高级语言如c语言去定义二叉线索树时,每个结点的 线索,即前驱和后继是 通过指针去定义的,而 指针是c语言的一种...
  • 战略决定结构什么意思?

    万次阅读 2017-07-10 11:03:59
    战略决定结构是一个业务原则,它规定组织的办事处、部门、团队、过程和技术是为了实现公司的战略而设计的。这个似乎理所当然,但是实际相反情况屡有发生。...战略决定结构的原则通常是通过自
  • HashMap的存储结构及原理

    千次阅读 2018-09-28 09:17:18
     数据结构中有数组和链表来实现对数据的存储,但这两者基本是两个极端。  数组 :数组的存储区是连续的,占用内存严重,故空间复杂度非常大。但数组的二分查找时间度小;数组的特点:寻址easy,插入和 删除...
  • 什么是软件体系结构

    万次阅读 2019-10-31 21:06:33
    可以从很多角度来看这个问题 软件体系结构的定义:是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件、和连接构件。...软件体系结构处理算法与数据结构关于整体系统结构设计...
  • 从前几年开始,安防厂商就已经开始在强调视频结构化,经过算法的演进和技术的革新,视频结构化开始大规模地得到应用。那么,何为视频结构化?视频结构化是一种视频内容信息提取的技术,它对视频内容按照语义关系,...
  • 数据结构:八大数据结构分类

    万次阅读 多人点赞 2018-09-05 18:23:28
    数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。 常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示: 每一种数据结构都...
  • 取指令和取操作数都在同一总线,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。由于程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,...
  • 什么是Mesh网络结构

    万次阅读 2019-10-27 10:32:48
    本文是对什么是Mesh技术?网状网络(Mesh)和传统网络结构相比有什么优势?这篇文章的简化和总结,原文说的比较啰嗦,想看的点链接自己看。 1.先来看传统局域网的问题: 局域网的基本结构包括星型结构、环型结构...
  •  相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类...
  • 数据结构中ElemType是什么意思

    万次阅读 多人点赞 2018-12-14 20:14:11
    ElemType是数据结构的书为了说明问题而用的一个词。它是element type(“元素的类型”)的简化体。 因为数据结构是讨论抽象的数据结构和算法的,一种结构中元素的类型不一定是整型、字符型、浮点型或者用户自定义...
  • 防盗门锁锁体内部结构图是什么

    万次阅读 2021-01-16 23:15:35
    锁芯:铜制的圆柱形锁芯,转动时可锁或打开。锁芯分内锁芯和外锁芯,内锁芯是32313133353236313431303231363533e78988e69d8331333431346331你插钥匙的地方。2.弹子:铜弹子分内弹子和外弹子,圆柱形,长短不一,装...
  • 前面学习数据结构的过程中,总是使用数组作为顺序表的底层实现,给我们一种 "...什么是数组 一说起数组,我们的印象中数组往往是某一门编程语言中包含的具体数据类型,其实不然。 从本质讲,数组与顺...
  • 什么是视频数据结构化?

    万次阅读 2018-08-30 12:12:27
    视频结构化是一种将视频内容中的重要信息进行结构化提取的技术,利用它对视频内容按照语义关系,采用时空分割、特征提取、对象识别、深度学习等处理手段,组织成可供计算机和人理解的文本信息或可视化图形信息。...
  • 什么要学习数据结构

    千次阅读 多人点赞 2019-12-17 16:05:08
    在学习数据结构之前,我们当然需要了解一下究竟什么是数据结构,否则你连自己在学什么都不知道, 岂不是一个笑话? 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们的关系和操作等...
  • 结构风险是在经验风险的基础加上表示模型复杂度的正则项(罚项)。 其中: J(f) 是模型的复杂度,模型f越复杂,J(f)值就越大,模型越简单,J(f)值就越小。也就是说,J(f) 是对复杂模型的惩罚。为什么说是惩罚...
  • 主要从Dalvik虚拟机整体结构、获取和编译Dalvik虚拟机的源码、源码分析辅助工具使用、dex文件及Dalvik字节码格式解析、Dalvik虚拟机下的系统工具介绍及Dalvik虚拟机执行流程简述等方面进行阐述,帮助读者从宏观...
  • 结构化数据与非结构化数据有什么区别?

    万次阅读 多人点赞 2019-08-08 10:53:28
    结构化数据和非结构化数据是大数据的两种类型,这两者之间并不存在真正的冲突。客户如何选择不是基于数据结构,而是基于使用它们的应用程序:关系数据库用于结构化数据,大多数其他类型的应用程序用于非结构化数据。...
  • 什么是数据结构和算法?以及怎样学习它?

    万次阅读 多人点赞 2018-09-26 15:22:03
    什么是数据结构什么是算法? 数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构。 因此,我们无法孤立...
  • 数据结构:八种数据结构大全

    万次阅读 多人点赞 2021-07-29 12:36:10
    数据结构 1.1 数据结构概述 数据结构是计算机存储、组织数据的方式;通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构的优良将直接影响着我们程序的性能;常用的数据结构有:数组(Array)...
  • 结构是一种非常常见的数据结构,并且在很多场景下也被用到。其实栈结构跟数组结构很像,只是在数组的基础...数据结构——栈一、什么是栈二、栈结构的方法三、用代码实现一个栈结构(1)创建一个构造函数(2)实现push
  • 什么要学数据结构

    万次阅读 多人点赞 2019-11-19 09:45:23
    一、前言 在可视化化程序设计的今天,借助于...1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
  • 数据结构ADT是什么

    千次阅读 2017-06-22 18:02:00
    数据结构是一个数据概念的定义,通过各种工具对数据结构的概念类型的描述称之为抽象数据类型,简单地说是指一个数学模型以及定义在该模型的一组操作。ADT包括数据数据元素,数据关系以及相关的操作。即ADT{ 数据...
  • 数据结构中的elem,elemtype是什么

    万次阅读 多人点赞 2019-10-14 11:41:10
    elem是单词element(元素)的缩写,在程序...ElemType是数据结构的书为了说明问题而用的一个词。它是element type(“元素的类型”)的简化体。 因为数据结构是讨论抽象的数据结构和算法的,一种结构中元素的类型...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,991,465
精华内容 1,996,586
关键字:

上是什么结构

友情链接: LoginExample.rar