zoukankan      html  css  js  c++  java
  • Data Structure

    ---

    数据结构在学什么?

    image-20210327231925876

    408专业课之间的关系

    image-20210327232253416

    image-20210327232543170

    数据,数据元素,数据项

    image-20210328104543950

    image-20210328104306495

    image-20210328105013932

    数据结构,数据对象

    image-20210328105548122

    数据结构注重数据元素间的关系,数据对象要求其中的数据元素具有相同性质

    数据结构的三要素

    数据的逻辑结构

    可分为:

    • 集合:类似数学上的集合,数据元素之间并无额外联系
    • 线性结构:元素之间为一对一关系,除了头节点,所有元素都有唯一前驱,除了尾节点,所有元素都有唯一后继
    • 树形结构:数据元素之间为一对多关系
    • 图(网)状结构:数据元素之间为多对多关系

    image-20210328222702835

    数据的物理结构(存储结构)

    • 顺序存储:逻辑上相邻的元素在物理位置上也相邻(Array数组)
    • 链式存储:逻辑上相邻的元素在物理上可以不相邻,通过指示地址的指针链接(Linkedlist链表)
    • 索引存储:额外建立索引表保存键值对信息(关键字-地址),地址映射到内存中的对象
    image-20210328223714872
    • 散列存储:存储地址直接编码在关键字中,关键字直接映射到元素对象(HashMap),又称Hash存储

    后三种也统称为非顺序存储

    pros and cons

    image-20210329173207970

    数据的运算

    image-20210329174114416

    注意:运算的定义针对逻辑结构,而运算的实现针对存储结构

    例如Array和LinkedList在逻辑上均为线性结构,均具有对头出队,新元素入队等操作,但操作的具体实现上会根据存储结构不同而有所区别

    数据类型、抽象数据类型

    image-20210329175103243

    image-20210329175318652 image-20210329175422099

    知识回顾

    image-20210329180050199

    image-20210329181002564

    定义一个ADT,就是定义了数据的逻辑结构运算,也就是定义了一个数据结构;对于数据结构的实现,则需要跟据具体情况确定物理结构(存储结构)

    image-20210329182347290

    注意定义和实现的区别

  • 相关阅读:
    到底该不该熟悉掌握struts2的ONGL呢?
    struts2 request内幕 为什么在struts2用EL表达式可以取值
    struts2 权限拦截器 拦截没有登陆的请求
    tomcat context 配置 项目部署
    tomcat 设置默认编码格式
    工作记录1
    javascript 的学习笔记(第一天)
    JavaScript for...in 循环
    indexof方法区分大小写
    java 和 IntelliJ IDEA 的一些配置
  • 原文地址:https://www.cnblogs.com/potofsalt/p/14593736.html
Copyright © 2011-2022 走看看