zoukankan      html  css  js  c++  java
  • 第一章 绪论

    1.1数据结构的讨论范畴

    Pascal语言的创始人 Niklaus Wirth 教授提出过大名鼎鼎的程序设计公式

                                                                                        Algorithm + Date_Structures = Programs

                                                                                     算法        +       数据结构         = 程序设计             

                           程序设计:为计算机解决问题编制一组指令集

                            算法      :处理问题的策略

                          程序设计 :处理问题的数学模型

    1.2基本概念

    一、数据与数据结构

    数据:所有能被输入到计算机中,且被计算机处理的符号的集合,数据本身就是一种集合。也可以说数据是计算机操作对象的总称。

               当然也可以理解为计算机处理的信息的某种特定符号的总称。

               这里有个理解,显然,这个数据的概念是在扩大的,如果最开始只能处理数字,字符等,那么现在早已能够处理图像 像素等,随着计算机技术的发展,相信这个概念还将继续扩大。

    数据元素:上面已经说了数据是一种集合,那必然存在其内部的元素,自然叫做数据元素,对于数据里的单个个体而言,就可以称之为数据元素

                       数据元素是讨论数据结构的基本单位,但不是最小单位(为什么?)

    数据项: 讨论数据结构的最小单位,数据元素是数据项的集合。

    例子1:数据元素:   运动员

                 数据项 :      姓名  俱乐部名称  出生日期  参加日期  职务  业绩

                 数据项 :                                              年  月  日(上面的,出生日期,包含多个数据项的的数据项称为组合项)

    数据结构:带结构的数据元素的结合,这里的 结构 是指数据元素之间的关系这种关系我们称之为 逻辑结构。

    例子:一个含12位数的十进制数就可以用三个4位的十进制数表示

                                      1234,5678,9101------------>a1(1234), a2(5678),a3(9101)

    显然这里的关系就是“次序”,即:a2必须在a1后,a3必须在a2后   <==>   <a1, a2>, <a2,a3>     (下面表示次序均以右边这种形式表示)

    例子:2行3列的二维数组 {a1, a2, a3, a4, a5, a6}

              a1  a2  a3

         a4  a5  a6

    这里的数据元素之间的关系有两个:

             1:行的次序关系   row = {<a1, a2>, <a2, a3>, <a4, a5>, <a5, a6>}

             2:   列的次序关系  col   = {<a1, a4>, <a2, a5>, <a3, a6>}

             以上任意一个关系出错,就导致不同的数据结构

     数据结构中元素之间的关系,即 逻辑结构 有以下4种

        集合:结构中的数据元素除了“同属于一个集合”外,没有其它关系

             线性结构:结构中的数据元素之间存在一对一的关系

       树型结构:结构中的数据元素之间存在一对多的关系

       图状结构或网状结构:结构中的数据元素之间存在多对多的关系

     1.3数据结构的定义形式

           数据结构的形式定义是一个二元组:

                                                                       Data-Structure=(D,S)

    其中:D是数据元素的有限集,S是D上关系的有限集。

    例2:设数据逻辑结构B=(K,R)

              K={k1, k2, …, k9}

              R={ <k1, k3>,<k1, k8>,<k2, k3>,<k2, k4>,<k2, k5>,<k3, k9>,<k5, k6>,<k8, k9>,<k9, k7>,<k4, k7>,<k4, k6> }

      画出这逻辑结构的图示,并确定那些是起点,那些是终点                      貌似不是很难,简单!

                                                      

     1.4数据结构的存储方式

     前面已将说了,数据结构包括: 数据元素 和 逻辑结构,计算机的操作对象是数据结构,那么必然涉及数据结构的储存

        

                                   

                                         

           

  • 相关阅读:
    310. Minimum Height Trees -- 找出无向图中以哪些节点为根,树的深度最小
    297. Serialize and Deserialize Binary Tree *HARD*
    235.236. Lowest Common Ancestor of a Binary (Search) Tree -- 最近公共祖先
    222. Count Complete Tree Nodes -- 求完全二叉树节点个数
    208. Implement Trie (Prefix Tree) -- 键树
    excel函数累加求和与累计百分比应用
    js去除空格
    js获取标签下标
    js中对String去空格
    css的三种使用方式:行内样式,内嵌样式,外部引用样式
  • 原文地址:https://www.cnblogs.com/LUOyaXIONG/p/10206493.html
Copyright © 2011-2022 走看看