大话数据结构之HelloWorld

第一章数据结构绪论

数据结构:相互之间存在一种或多种特定关系数据元素集合

开场白

  1. If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime
    翻译: 让我们去玩数据结构,去感受编程的美
  2. 每学习一个知识点时,自己询问编程的
    他是谁,他有什么用,他怎么理解

你的数据结构怎么学的

数据结构就像高数,编程的地基,最本质的东西

数据结构起源

数据结构是用来解决非数值计算的操作对象关系操作等相关问题

基本概念和术语

数据:

  • 符号、可操作对象的集合。
  • 输入到计算机中,被计算机处理

数据元素:

  • 组成数据的有意义的基本单位,eg:人类中每个人就是数据元素

数据项:

  • 数据不可分割的做小单位.eg:人的年龄

数据对象:

  • 数据的子集,性质相同数据元素的集合eg:人类中的老人

数据结构:

  • 结构简单理解就是关系,数据结构也就是存在关系的数据元素集合

lime :人类-老人-一个人-年龄-------存在关系的人的集合

逻辑结构和物理结构

逻辑结构:

  • 是指数据对象中数据元素之间的相互关系. 一对一、多对多等等
  • 用来定义数据元素的关系
  • 分类:
    • 集合结构(任何人在一起就是集合结构人人平等)
    • 线性结构(老公和老婆一对一关系)
    • 树形结构(妈妈和儿子一对多)为什么不爸爸请你自己思考
    • 图形结构(表哥和表弟多对多)

物理结构:

  • 是指数据的逻辑结构在计算机中的存储形式
  • 用来在计算机中反映逻辑结构
  • 两种存储结构形式:
    • 顺序存储:
      • (一块连续空间,排队上厕所,数组)把数据元素放在连续的储存单元里,逻辑关系和物理关系一样
      • 只能使用一整块相邻的存储单元,可能产生较多外部碎片
      • 随机存储
    • 链式存储结构
      • (先领号,按照号码上厕所)把数据元素放在任意的存储单元里.用指针来存放数据元素地址,逻辑关系和物理关系不一样
      • 非随机存取(又称顺序存取):就是存取第N个数据时,必须先访问前(N-1)个数据
    • 索引存储结构
      • 存储节点时,额外存储地址,形式如<关键字,地址>
      • 关键字:标识唯一一个节点,地址:指向上述节点的指针
      • 增、删数据时要修改索引表,会花费更多的时间
    • 散列(Hash)存储方法
      • 根据节点的关键字计算出节点的存储地址,形如location=Hash(key)
      • 散列函数不好,会出现元素存储单元冲突

抽象数据类型

数据类型:

  • def:一组性质相同值的集合+集合的操作的总称
  • 作用:规定数据的大小,类别
  • 分类:
    • 原子类型:不可分eg:int
    • 结构类型:可再分eg:struct
      抽象数据类型 ( Abstract Data Type, ADT):
  • def:一个数学模型及定义在改模型上的操作.eg:三维直角坐标系的每一个点可抽象数据类型为point,每个point包含x,y,z三个数据,然后还有一些自定义的操作.
    • 在这里插入图片描述

lime: 抽象数据类型就可以近似当做面向对象中的类

In a word

在这里插入图片描述数据结构是存在一种或多种特定关系的数据元素的集合
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值