第一章 绪论

摘要:
1.4前面已经提到了数据结构的存储模式。数据结构包括:数据元素和逻辑结构。计算机操作的对象是数据结构,因此必须涉及数据结构的存储

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张                                             

 1.4数据结构的存储方式

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

第一章 绪论第2张

    

                               

                                     

       

第一章 绪论第3张

免责声明:文章转载自《第一章 绪论》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇rman datafile恢复(归档模式)XCopy命令实现增量备份下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

数据结构-链表习题

判断题 1.在单向链表中,头指针中存放的是头结点的内容。      T      F 2.单向链表中的每个结点都需要动态分配内存空间。      T      F 3.通常使用结构的嵌套来定义单向链表结点的数据类型。      T      F 4.用链表代替数组进行数据操作时,查询更加方便。      T      F 选择题 1.以下程序的输...

redis基础数据结构源码浅析

基于redis 5.0.6 先列个表格 类型 实现 string sds list quicklist set intset hashtable zset ziplist skiplist+hashtable hash ziplist hashtable string redis的string(字符串)实现称为SDS(...

将json转换为数据结构体

主要用到的依赖:(划重点:这个依赖需要加jdk版本号,不加的话用不了,且目前最高是jdk15) (ps: 用于json与其他类型格式转换,JSONObject, JSONArray等来自这个包) <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->...

自己动手设计并实现一个linux嵌入式UI框架(设计)

  看了“自己动手设计并实现一个linux嵌入式UI框架”显然没有尽兴,因为还没有看到庐山真面目,那我今天继续,先来说说,我用到了哪些知识背景。如:C语言基础知识,尤其是指针、函数指针、内存分布,linux 基础知识、如消息队列、framebuffer、多线程、多线程同步、等,数据结构、算法(如链表、队列等),window .netframework 框架...

数据结构学习笔记——线性表

第2章  线性表 2.1  线性表的类型定义  线性结构的特点是:在数据元素的非空有限集中,(1)存在唯一的一个被称做“第一个”的数据元素;(2)存在唯一的一个被称做“最后一个”的数据元素;(3)除第一个之外,集合中的每个数据元素只有一个前驱;(4)除最后一个外,集合中每个数据元素均只有一个后继。 线性表的类型定义 线性表(linear_list)是最常用...

Cesium原理篇:3D Tiles(2)数据结构

      上一节介绍3D Tiles渲染调度的时候,我们提到目前Cesium支持的Cesium3DTileContent目前支持如下类型: Batched3DModel3DTileContent Instanced3DModel3DTileContent PointCloud3DTileContent Composite3DTileContent...