数据结构与算法一

   算法与数据结构之于程序设计的重要性不言自明。那么,什么是算法?什么是数据结构?什么又是程序呢?我们先从阐明大家最为熟悉的“程序”的概念入手。

1)程序是计算机指令的某种组合,控制计算机的工作流程,完成一定的逻辑功能,以实现某种任务;

2)再来看什么是算法,算法是程序的逻辑抽象,是解决某类客观问题的数学过程;

3)最后我们来看一看数据结构又是什么呢?在这里,数据结构具有两个层面上的涵义--逻辑结构和物理结构:客观事物    自身所具有的结构特点,我们将其称之为逻辑结构。如家族谱系是一个天然的树型逻辑结构。而逻辑结构在计算机中的具体实现则称之为物理结构,如树型逻辑结构是用指针表示还是使用数组实现。

    仔细体会一下,就会发现算法与数据结构间的紧密性。用一个较为贴切的例子来形容,若把数据结构喻为建筑工程中的建筑设计图,那么算法就是工程中的施工流程图。数据结构与算法呈相互依托的关系,恰当的确立了问题的结构,问题的解决才能根据确立的层次结构选择合适的解决方法。因此任何讲解数据结构的书都不可能撇开算法,单单介绍数据结构,反之亦然。

   数据结构由数据和结构组成,它是一门研究非数值计算的程序设计问题中计算机的操作对象,以及它们之间的关系和操作等的学科。

   是的。早期人们都把计算机理解为数值计算工具,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。可现实中,我们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表、树和图等数据结构)的帮助,才能更好地处理问题。所以数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。

   数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。对于整型、实型等数值类型,可以进行数值计算。对于字符数据类型,就需要进行非数值的处理。而声音、图像、视频等其实是可以通过编码的手段变成字符数据来处理的。对于整型、实型等数值类型,可以进行数值计算。对于字符数据类型,就需要进行非数值的处理。而声音、图像、视频等其实是可以通过编码的手段变成字符数据来处理的。

    数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。在数据结构这门课程中,我们把数据项定义为最小单位,是有助于我们更好地解决问题。所以,记住了,数据项是数据的最小单位。但真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点。就像我们讨论一部电影时,是讨论这部电影角色这样的“数据元素' 而不是针对这个角色的姓名或者年龄这样的“数据项”去研究分析。

   数据对象:是性质相同的数据元素的集合,是数据的子集。结构,简单的理解就是关系,比如分子结构,就是说组成分子的原子之间的排列方式。严格点说,结构是指各个组成部分相互搭配和排列的方式。在现实世界中,不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系称为结构。

   那数据结构是什么?数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。在计算机中,数据元素并不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。为编写出一个“好”的程序,必须分析待处理对象的特性及各处理对象之间存在的关系。这也就是研究数据结构的意义所在。

数据 data
数据对象 data object
数据元素 data element 数据元素 数据元素 数据元素
数据项 data item 数据项 数据项 数据项 数据项 数据项 数据项 数据项
    数据(data)  是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中的,并且能被计算机程序处理的符号的总称。 数据 可分为两大类:一类是 数值数据 ,包括整数、实数等;另一个类是 非数值数据 ,包括图形、图像、声音、文字等。
    数据对象(data object)  是性质相同的数据元素的集合,是数据的一个子集。
    数据元素(data element)  是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
   有时,一个数据元素可由若干个 数据项(data item) 组成,数据项是构成数据元素的不可分割的最小单位。

你可能感兴趣的:(数据结构与算法一)