数据结构与算法入门---数据结构类型

数据的逻辑结构

 数据的逻辑结构指数据元素之间的逻辑哦关系(和实现无关)

    分类一:线性结构和非线性结构

    线性结构:有且只有一个开始结点和一个终端节点,并且所有节点都最多只有一个直接前继和一个直接后继。

    线性表就是一个典型的线性结构,它有四个基本特征:

    1.集合中必存在唯一的一个“第一个元素”

    2.集合中必存在的一个“最后的元素”

    3.除最后元素之外,其他的数据元素均有唯一一个的“后继”

    4.除第一元素之外,其他的数据元素均有唯一一个的“前驱”

    

    相对应线性结构,非线性结构的逻辑特征是一个节点元素可能对应多个直接前继和多个直接后继,常见的有树(二叉树等)、图(网等)

      

    树:例如linux的文件系统等

  分类二: 集合结构 线性结构 树状结构 网状结构

  逻辑结构有四种基本类型:集合结构、线性结构、树状结构和网状结构

  表和树是最常用的两种高效数据结构,许多高效的算法能够用这两种数据结构来设计实现

  集合结构:三个特征:1.确定性2.唯一性3.无序性,该结构的数据元素间的关系是“属于同一集合”,别无其他关系。因为集合中元素的关系很弱,数据结构中不对该结构进行研究

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

  树状结构:除了一个数据元素(元素01)以外每个数据元素有且仅有一个直接前驱元素,但是可以有多个直接后继元素,特点是数据元素之间是1对多的联系

  网状结构:每个数据元素可以有多个直接前驱元素,也可以有多个直接后继元素,特点是数据元素之间是多对多的关系

    

 数据的储存结构

  数据的储存结构主要包括数据元素本身的储存以及数据元素之间的关系表示,是数据的逻辑结构在计算机中的表示,常储存结构有顺序储存,链式储存,索引储存以及散列储存

  顺序储存结构:通常顺序储存结构是借助计算机中的数组的概念描述的

  

  

优点:节省储存空间,因为分配给数据的储存单元全用存放节点的数据,节点之前的逻辑关系没有占用储存空间

采用这种方法的,可实现对节点的随机存取,每个节点对应一个序号,通过该序号可以计算出来节点的储存地址

缺点:插入和产出操作需要移动元素,效率低

  链式储存结构:数据元素的储存对应的是不连续的储存空间,每一个储存节点对应一个需要储存的数据元素

  链式储存结构的特点:

    1.每个节点是由数据域和指针域组成,所以相同空间内假设全存满的话顺序比链式储存更多

    2.逻辑上相邻的节点物理上不相邻

    3.查找删除灵活(不必移动节点,只要改变节点中的额指针)

    4.查找结点链式储存要比顺序储存慢

  

  索引储存结构: 除建立储存节点信息外,还建立附加的索引来标识节点的地址。

  比如:图书,字典的目录,目录是占空间的,但是这个目录占的空间非常小,能够带给性能的极大的优越。根据索引查找数据

  散列储存结构:

    添加和查询非常快,按照内容查找

总结:

    

posted on 2019-05-05 19:38 雪地里的Alan 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/white-the-Alan/p/10815760.html

数据结构与算法入门---数据结构类型相关推荐

  1. 如何求解问题--数据结构与算法入门

    如何求解问题–数据结构与算法入门 在学习数据结构与算法前,我们大多有这样的困惑,难道学习了数据结构与算法就能帮助我们解决学习Java.Python时的大作业吗?数据结构与算法是什么? 回答这个问题之前 ...

  2. 【数据结构与算法】数据结构+算法=程序

    [数据结构与算法]数据结构+算法=程序 数据结构 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成.记为:Data_Structure=(D,R)其中D是数据元 ...

  3. 数据结构与算法入门教程(C语言实现版)

    个人简介 作者是一个来自河源的大三在校生,以下笔记都是作者自学之路的一些浅薄经验,如有错误请指正,将来会不断的完善笔记,帮助更多的Java爱好者入门. 文章目录 个人简介 C语言数据结构与算法 BF和 ...

  4. 数据结构与算法入门(Java)

    数据结构与算法(Java) 1. 数据结构与算法概述 1.1 什么是数据结构? 官方解释: 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科. 大白话: ...

  5. Java数据结构与算法入门

    原文:https://blog.csdn.net/qq_37101453/article/details/80142147 第一部分:Java数据结构 要理解Java数据结构,必须能清楚何为数据结构? ...

  6. 数据结构与算法入门(follow 左神)

    文章目录 一. 认识时间复杂度和简单排序算法 1.以选择排序为例 2.异或运算 3.插入排序 4.二分查找 5.对数器 二. 认识O(NlogN)的排序 1.递归==栈的后序遍历 2.归并排序 3.快 ...

  7. java set第n位_数据结构与算法——常用数据结构及其Java实现

    本文采用Java语言来进行描述,帮大家好好梳理一下数据结构与算法,在工作和面试中用的上.亦即总结常见的的数据结构,以及在Java中相应的实现方法,务求理论与实践一步总结到位. 常用数据结构 数组 数组 ...

  8. 数据结构与算法——常用数据结构及其Java实现

    前言 仿佛一下子,2017年就快过去一半了,研一马上就要成为过去式了,我打算抓住研一的尾巴,好好梳理一下数据结构与算法,毕竟这些基础知识是很重要的嘛.所以准备在这里搞一个系列的文章,以期透彻. 本系列 ...

  9. 【数据结构与算法】数据结构有哪些?算法有哪些?

    1. 算法与数据结构总览图 2.常用的数据结构 2.1.数组(Array) 数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合.数组可以说是最基本的数据结构,在各种编程语言中都 ...

最新文章

  1. linux虚拟网桥配置nat,使用NAT在Proxmox VE 6上创建专用网桥的方法
  2. Sharepoint 2013 发布功能(Publishing features)
  3. Python 模块(二)
  4. 如果你20秒钟还看不懂这个短信的话,说明你还纯洁!?
  5. VC2008 Windows Media Player控件的使用技巧
  6. 中国双面泡棉胶带市场趋势报告、技术动态创新及市场预测
  7. blob 按换行 分裂_Blob对象介绍
  8. 丢弃法(基于MXNet)
  9. WordPress收费下载插件Erphpdown最新下载[持续更新]
  10. Linux系统基于MobaXterm的下载及使用
  11. Django model select获取数据详细讲解
  12. JAVA计算机毕业设计电影视频在线点播系统Mybatis+系统+数据库+调试部署
  13. 【Android】二维码识别性能优化
  14. 单片机设计中的软件测试,基于单片机设计的小电阻测试 - 控制/MCU - 电子发烧友网...
  15. 费城交响乐团将于5月16日至28日开启2019年中国巡演之旅
  16. 国内优秀MES开源框架
  17. 六个office免费学习的精品教程 office自学教程让你从小白到高手
  18. Conflux Studio新版教程详解
  19. 微型计算机原理知识总结,微机原理知识点
  20. 计算机毕业设计SSM城市智能公交系统【附源码数据库】

热门文章

  1. mysql linuxl环境搭建_Linux环境下的MySQL搭建
  2. php usort strcmp,字符串函数演示和usort()进行二维数组排序(0827)
  3. c语言字符密码验证码,c语言下的学生管理系统(含密码加密和验证码).docx
  4. Spring Boot学习笔记(1)
  5. 数字图像处理--几种图像均值滤波的java实现
  6. 如何在Vmware-Workstation中配置两块网卡?
  7. hprofile教程
  8. using a dict on a Series for aggregation is deprecated and will be removed in a future version
  9. 分类算法之决策树C4.5算法
  10. docker oom 排查过程