zoukankan      html  css  js  c++  java
  • 数据结构基本概念和术语

    数据Data)是信息的载体也就是说数据里面隐含着信息

    它能够被计算机识别、存储和加工处理。它是计算机程序加工的原料。随着计算机软件、硬件的发展,以及计算机应用领域的扩大,数据的含义也随之拓广了,它不仅仅是数字和字符串,而图形、图像、声音等,它们也属于数据的范畴。

    数据元素Data Element)是数据的基本单位。

    有些情况下,数据元素也称为元素、结点、顶点、记录。有时一个数据元素可以由若干个数据项(也可称为字段、域、属性)组成,【典型的如结构体】数据项是具有独立含义的最小标识单位。

    数据结构Data Structure)指的是数据之间的相互关系即数据的组织形式。虽然至今没有一个关于数据结构的标准定义,但它一般包括以下三个方面的内容:【逻辑结构、存储结构、数据运算

    数据元素之间的逻辑关系,也称为数据的逻辑结构

    数据元素及其关系在计算机存储器内的表示,称为数据的存储结构

    数据的运算,即对数据施加的操作。

    数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。数据的存储结构是逻辑结构用计算机语言的实现(亦称为映象),它是领带于计算机语言的,对机器语言而言,在座结构是具体的,但我们只在高级语言的层次上来讨论存储结构。数据的运算是定义在数据的逻辑结构上的,每种逻辑结构都有一个运算的集合。例如,最常用的运算有:检索、插入、删除、更新、排序等

    数据的逻辑结构有两大类

    1)线性结构【如非空,有一起点和一终点,最多只有一个直接前趋和一个直接后继

    线性结构的逻辑特征是:若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线性表就是一个典型的线性结构。

    2)非线性结构

    非线性结构的逻辑特是一个结点可能有多个直接前趋和直接后继

     数据的存储结构可用以下四种基本存储方法得到

    1、顺序存储方法

    该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里结点间的逻辑关系由存储单元的邻接关系来体现。 由此得到的存储表称为顺序存储结构(Sequential Storage Structure),通常借助程序语言的数组描述。

    该方法主要应用于线性的数据结构非线性的数据结构也可通过某种线性化的方法实现顺序存储

    【顺序存储的数据可以是线性数据结构、也可以是非线性数据结构】

    2链接存储方法【比如链表

    该方法不要求逻辑上相邻的结点在物理位置上亦相邻结点间的逻辑关系由附加的指针字段表示由此得到的存储表称为链式存储结构Linked StorageStructure),通常借助于程序语言的指针类型描述

    3索引存储方法

    该方法通常在储存结点信息的同时还建立附加的索引表

    索引表由若干索引项组成若每个结点在索引表中都有一个索引项则该索引表称之为稠密索引(Dense Index【一个结点对应一个索引项】。若一组结点在索引表中只对应一个索引项【一结点对应一个索引项】则该索引表称为稀疏索引(Spare Index)索引项的一般形式是

     (关键字、地址)

    关键字是能唯一标识一个结点的那些数据项。稠密索引中索引项的地址指示结点所在的存储位置;稀疏索引中索引项的地址指示一组结点的起始存储位置。

    4、散列存储方法【不知道存储地址,要计算得到该地址】

    该方法的基本思想是:根据结点的关键字直接计算出该结点的存储地址。

    四种基本存储方法,既可单独使用,也可组合起来对数据结构进行存储映像。

    同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。选择何种存储结构来表示相应的逻辑结构,视具体要求而定,主要考虑运算方便及算法的时空要求。

     

    什么是数据:

    数据是客观事物的符号表示,指能输入到计算机中并被计算机程序处理的符号的总称,例如:整数,实数,字符,文字,声音,图形,图像等都是数据

    什么是数据元素:

    数据元素是数据的基本单位,一个数据元素包含多个数据项时,常称为记录,结点等,数据项也称为域,字段,属性,表目,顶点。

    算法的定义

    做任何事情都有一定的步骤,这些步骤都是有顺序的,算法是在有限步骤内求解某一问题所使用的一组定义明确的指令序列,通俗点说,就是计算机解题的过程

    算法的表示

    为了表示一个算法,可以用多种不同的应运。常用的有自然语言,传统流程图,结构化流程图,N-S图,伪代码,计算机语言表示法等。

    算法分析

    算法分析主要是指分析算法的效率,算法效率的试题主要从两个方面,算法运行时间和算法所需的存储空间。

    在算法分析中,算法整个运行过程所耗费的时间,称为算法的时间复杂度,算法整个运行过程所占用的空间称算法的空间复杂度。

  • 相关阅读:
    学习日记-- 动态性。动态编译,静态方法,包装类
    第一周学习所获———ORM,数据持久化,通过注解来实现数据持久化框架
    第一周学习所获--class类1(反射和类加载过程)
    各种命名规范
    用easyui,json,纯mvc实现一个系统的数据流动过程
    js+bootstrap实现分页页码
    Echarts简单案例
    bootstrap日期控件(双日期、清空等问题解决)
    三种方法实现调用Restful接口
    Spring MVC异常处理 和 重定向传递数据
  • 原文地址:https://www.cnblogs.com/zknublx/p/5874493.html
Copyright © 2011-2022 走看看