初学数据结构——从零开始的数据结构学习第一天(初识数据结构)

目录

前言

一、初步了解数据结构

二、数据结构在编程中的功能

三、数据结构中的基本概念

1、数据

2、数据元素(也称记录、结点或顶点。)

3、数据项

4、数据对象

5、数据、数据元素、数据项、数据对象图示小结

6、数据结构

基本概念:

主要内容:

数据结构的逻辑结构和物理结构(存储结构)介绍

7、数据结构的逻辑结构

逻辑结构的种类(划分方式一)

逻辑结构的种类(划分方式二)

8、数据结构的存储结构

顺序存储结构

链式存储结构

索引存储结构

散列存储结构


前言

本博客为本人在学习数据结构路途上的一些学习心得,如觉得对有你有所帮助,还希望留下一个赞。由于博主只是一名大一新生,如果博文中出现错误,欢迎指正。如果想要转载,附上链接就行。

一、初步了解数据结构

相信很多人都听说过这样一个公式“程序=数据结构+算法”。这句话来自Pascal语言之父——Nicklaus Wirth,直接展示出了程序的本质。那么什么是数据结构呢?粗略的来说就是互相之间存在一种或多种特定关系的数据元素集合,或者也可以说是带结构的数据元素的集合。至于数据元素是什么会在下文讲述。


二、数据结构在编程中的功能

我们编写程序解决实际问题时,通常分为三个步骤:

1、分析问题并抽象为数学模型

2、设计算法处理数学模型

3、编写程序

在把问题抽象为数学模型的过程中,我们会在分析问题之后提取出问题之中的操作对象(需要进行操作的对象,例如在一个酒店客房管理系统,酒店的客房就是我们的操作对象),寻找操作对象之间的关系,用数学语言进行描述,最后的产物就是数据结构。

编程的本质就是我们使用算法对数据结构进行处理


三、数据结构中的基本概念

(如果在以下描述中对于这些基本概念不太清楚可以看小结中的图示)

1、数据

概念:能输入计算机且能被计算机处理的符号的集合

特征:

  • 信息的载体
  • 客观事物符号化的表示
  • 能被计算机识别,储存和加工

类型:

  • 数值类的数据:正数,小数等拥有具体数值的数据。
  • 非数值类的数据:声音、图像、文字等没有具体数值的数据。

2、数据元素(也称记录、结点或顶点。)

概念:数据的基本单位

特征:

  • 由若干个数据项组成
  • 在计算机程序中通常作为一个整体来考虑

3、数据项

概念:数据元素中不可分割的最小单位

数据、数据元素、数据项之间的关系:数据>数据元素>数据项

4、数据对象

概念:性质相同的数据元素的集合,是数据的子集

实例:

  • 字符串数据对象是字符数据元素的集合C={'H' , 'e' , 'l' , 'l' , 'o' , '!' , '\0'}
  • 学生信息表也是一个数据对象

5、数据、数据元素、数据项、数据对象图示小结

6、数据结构

基本概念:

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

主要内容:

  • 逻辑结构:数据元素之间的逻辑关系
  • 物理结构(存储结构):数据元素及其关系在计算机内存中的表示(映象)。
  • 运算和实现:对数据元素施加的操作以及这些操作在相应储存结构上的实现

数据结构的逻辑结构和物理结构(存储结构)介绍

  • 逻辑结构
  1. 概念:数据元素之间的逻辑关系
  2. 特点:独立于计算机,与数据的存储无关
  • 物理结构(存储结构)
  1. 概念:数据元素及其关系在计算机中的结构(存储方式)
  2. 特点:存储于计算机之中,关系到数据元素的实际操作

7、数据结构的逻辑结构

逻辑结构的种类(划分方式一)

  • 线性结构
  1. 特点:有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。
    例如:线性表、栈、队列、串

  • 非线性结构

  1. 特点:个结点可能有多个直接前趋和直接后继。
  2. 例如:树、图

 

逻辑结构的种类(划分方式二)

  • 集合结构

特点:结结构中的教据元素之间除
了同属于一个集合的关系外,无任
何其它关系。

  • 线性结构

特点:结构中的数据元素之间存在
着一对一的线性关系。

  • 树形结构

特点:结构中的数据元素之间存在
着一对多的层次关系。

  • 图状结构

特点:结构中的数据元素之间存在
着多对多的任意关系。

8、数据结构的存储结构

顺序存储结构

  • 用一组连续的存储单元依次存储数据
    元素,数据元素之间的逻辑关系由元
    素的存储位置来表示。
  • C语言中用数组来实现顺序存储结构。

链式存储结构

  • 用一组任意的存储单元存储数据元素
    ,数据元素之间的逻辑关系用指针
    表示。
  • C语言中用指针来实现链式存储结构

索引存储结构

  • 在存储结点信息的同时,还建立附加的索引表
    (例如电话簿旁边的ABCDEF首字母索引)
  • 索引表的每一项称为一个索引项
  • 索引项的一般形式是:关键字或地址
  • 关键字是能唯一标识一个结点的那些数据项。
  • 若每个结点在索引表中都有一个索引项,则该索
    引表称之为稠密索引。若一组结点在索引表中只
    对应一个索引项称之为稀疏索
    引。

散列存储结构

  • 根据结点的关键字直接计算出该结点的存储地址。
    (哈希表)

  •  计算出的散列表

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值