一、什么是数据结构

1、数据结构的起源
        数据结构不是研究数值计算的这些是数学家应该研究的问题,它是研究计算机存储、组织数据的方式问题的学科,数据结构会影响算法的效率,合适的数据结构可以带来更高的运行或存储效率。
        1968年,美国的高纳德(Donald E. Knuth)教授《基本算法》,开创了数据结构课程体系的先河。
        程序设计 = 数据结构 + 算法
        凭借一句话获得图灵奖的Pascal之父——Nicklaus Wirth,让他获得图灵奖的这句话就是他提出的著名公式:“算法+数据结构=程序”。
        这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2”——一个公式展示出了程序的本质。
        
    2、数据结构的基本概念
        数据(data):所有能输入到计算机中去的描述客观事物的符号
        数据项(data item):有独立含义的数据最小单位,也称域(field)
        数据元素(data element):数据结构的基本单位,也称节点(node)或记录(record)
        数据结构(data structure):数据元素和数据元素关系的集合
        算法(algorithm):是对特定问题求解步骤的一种描述,是指令的有限序列
        
    3、数据结构的三个方面
        数据的逻辑结构:元素之间具有什么关系。
        数据的存储结构:元素在内存中如何存储的。
        数据结构的运算:数据结构应具有的功能或擅长的功能。

二、数据元素之间的逻辑结构有四种基本类型

集合:数据元素之间除了同属一个集合外没有其它关系。
    
    线性结构:数据元素之间存在一对一的关系,也被称为线性表,简称为表,最具代表性的就是数
    组、链表。
    
    树型结构:数据元素之间存在一对多的关系,如:族谱关系、组织关系。
    
    图状结构:数据元素之间存在多对多的关系,如:地铁、高铁线路图。

三、数据结构的存储方式

数据结构在计算机内存中的存储包括数据元素的存储和元素关系的表示。

元素之间的关系在计算机中有两种不同的表示方法,顺序表示和非顺序表示。

1、顺序存储结构

数据存储在一段连续的空间中,用数据元素在存储器中的相对位置来表示数据元素的关系。

优点:随机访问方便,访问效率极高。

缺点:插入删除不方便。

数据结构 表 树 图

顺序 顺序表 顺序树 矩阵

链式 链式表 链式树 邻接表(顺序+链式)

2、链式存储结构

结构中的数据元素存放在彼此独立的地址空间中,每个独立的地址空间称为节点。

在每一个数据元素中增加一个存放另一个元素地址的指针,用来表示数据元素之间的关系。

优点:插入删除方便,空间利用率高。

缺点:随机访问不方便,只能由前到后逐个访问。

四、逻辑结构和存储结构的关系

每种逻辑结构采用何种物理结构实现,并没有明确规定,通常根据实现的难易程度,以及在时间和空间方面的要求,选择最适合的物理结构,也不排除复合多种物理结构实现一种逻辑结构的可能。

五、数据结构的运算

1、建立数据结构:create

2、销毁数据结构:destroy

3、从数据结构中删除一个元素:delete

4、把一个元素插入到一个数据结构中:install

5、访问数据结构中的元素:access

6、修改数据结构中的元素:modify

7、对数据结构中的元素进行排序:sort

8、在数据结构中查找元素:query

什么是数据结构以及数据结构的存储方式、逻辑结构和存储结构的关系、数据结构的运算、逻辑结构的四种基本类型相关推荐

  1. 字符串的存储方式以及静态存储区域、栈、堆

    下面两篇文章分析得比较详细.转自http://blog.csdn.net/yangdelong/archive/2010/04/03/5447362.aspx 文章来源 http://blog.csd ...

  2. 动态存储方式和静态存储方式

    从变量的作用域的角度来观察,变量可以分为全局变量和局部变量: 全局变量都是存放在静态存储区中的.因此它们的生存期是固定的,存在于程序的整个运行过程 局部变量,如果不专门声明存储类别,都是动态地分配存储 ...

  3. 动态存储方式与静态存储方式

    从变量的作用域的角度来观察,变量可以分为全局变量和局部变量: 全局变量都是存放在静态存储区中的.因此它们的生存期是固定的,存在于程序的整个运行过程 局部变量,如果不专门声明存储类别,都是动态地分配存储 ...

  4. 【v3.6.2】iNeuOS工业互联网操作系统,发布实时存储方式:实时存储、变化存储、定时存储,设备振动状态和电能状态监测驱动...

    目       录 1.      概述... 1 2.      平台演示... 2 3.      存储方式... 2 4.      设备状态和用电状态监控驱动... 3 1.   概述 本次升 ...

  5. [ Android 五种数据存储方式之一 ] —— SharedPreferences存储数据

    SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数. 主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceS ...

  6. java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式

    java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...

  7. mysql数据存储方式_数据存储在mysql的两种方式

    数据存储在mysql的两种方式 发布时间:2020-05-12 16:16:25 来源:亿速云 阅读:250 作者:三月 下文主要给大家带来数据存储在mysql的两种方式,希望这些内容能够带给大家实际 ...

  8. Android基础篇-五大存储方式之一数据库存储

    废话不多说,直接看代码 activity_main: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a ...

  9. 传统存储方式_海量非结构化数据存储方案

    方案背景 数字化转型推动着数据的快速增长.新摩尔定律表明,全球数据总量每过 18 个月就会增长一倍,预计到 2020年全球数据总量将达到 3,5000EB.其中,在高速增长的数据中,非结构化数据占比超 ...

最新文章

  1. Objective-C非正式协议与正式协议
  2. 模拟Web 服务器磁盘满故障深入解析
  3. 盯紧那群养生的年轻人,他们的焦虑值300亿
  4. 如何自定义IHttpHandler
  5. Spark Streaming整合logstash + Kafka wordCount
  6. mugen4g补丁如何使用_CAD如何去除教育版戳记?
  7. 与专门团队一起持续交付
  8. CentOS 6.3下NFS安装配置
  9. 求职必看!大厂面试中遇到了发散性问题..... ,怎么办?
  10. python列表中存类对象_python中对类的操作,怎么增加或删除类中的对象呢?比如下面这个题...
  11. tensorflow获取中间变量参数值
  12. 如何配置Gitlab的双因子验证(Two-Factor Authentication)
  13. python 将微信聊天记录生成词云
  14. 运算放大器实用电路大全
  15. 计算机主机清理步骤,教你4个C盘清理方法,去掉电脑90%垃圾文件
  16. java游戏源码合集,已整理成文档
  17. win10安装visio2010出错_为何我安装Visio 2010时会安装不上,提示下面的错误
  18. Android开发实用小工具三——面积转换工具
  19. 仪器规范接地与测量安全
  20. 华为手机信息不弹屏了为什么_华为手机短信不提醒如何解决?四种方法来帮你!...

热门文章

  1. 要想成为Spark高手 从内功练起
  2. 服务器网卡显示百兆,centos检查网卡带宽(100M/1000M)
  3. 怎么把握住股票每天的最佳交易时机?
  4. PlanetScale 推出基于 Vitess 的分布式 MySQL 数据库服务
  5. nmi中断配置_关于单片机中的NMI_Handler(不可屏蔽中断处理器)
  6. python ai 教学_【Python AI教学】从零开始学Python AI开发系列01
  7. Redis数据类型与操作命令
  8. 这个PDF转PPT小妙招,PPT达人都知道!
  9. 家庭实验室系列文章-如何迁移树莓派系统到更大的 SD 卡?
  10. java如何实现pcm流转trmp流