数据结构学习(一)——数据结构的概念

数据结构的概念

数据结构很重要,数据结构很重要,数据结构很重要,重要的事情说三遍

数据结构的定义

在计算机世界中,数据是对客观事物的描述形式和编码形式的统称,是计算机和程序的处理对象(输入数据)和计算结果(输出数据)

数据的种类:数值型数据(整数,实数);文字型数据(字符串,程序代码等);矩阵,记录;声音,图像;总是以某种编码形式出现

数据元素:(data element)

也称数据结点,简称结点(node);

描述一个独立书屋的名称,数量,特征,性质的一组相关信息组成一个数据结点

通常情况下,一个结点含有多个数据项(data item)

  • 节点的类型为结构型,每个数据项是结点的域,能够唯一表示节点的域称为关键字域(key)
  • 但值类型的结点:只含有一个数据项
数据结构(data structure,DS)
  • B = (D,R)

    D:有穷的结点集合

    R:D中结点间的有穷关系集合(表示结点之间的逻辑关系的集合)

    (D,R)是对客观事物的抽象描述,是数据的逻辑结构(logical form)

  • B=(D,R,O)

    B数据结构

    D有穷的结点的集合

    R D中结点的有穷关系集合

    O 表示“运算集”

如何在计算机中表示数据及其之间的关系呢?:需要研究数据结构的存储方式,主要从两个方面,逻辑结构,物理结构

物理结构(physical form)

就是数据结点在计算机内的存储形式,既要存储数据结点的值,又要存储或结点的存储地址能够体现出结点之间的关系

通俗的来说就是,计算机存储了结点值,以及和他相关的结点的地址,来突出两个或多个结点之间的关系,具体是什么关系,看存储方式

存储方式可以分为

  • 顺序存储
  • 非顺序存储

存储结点

  • 用于存储一个数据节点的存储单元
  • 一个数据结点对应一个存储结点
  • 所以,在不混淆的情况下,数据节点和存储结点统称为结点

空白结点(空结点,自由结点)

预留的存储结点(即尚未存储数据的存储结点)

数据结构的种类和运算

数据结构的种类
  • 表结构(描述结点之间简单的先后次序关系,每个结点只有一个前驱节点,和一个后继节点,但是尾结点没有后继,首结点没有前驱,就是一个简单的线性结构,例如:A->B->C 其中A,B,C是三个结点,前驱结点就是此结点前面的结点,后继结点就是此结点后面的结点,A是B的前驱结点,C是B的后继结点,A结点是首结点没有前驱结点,C结点是尾结点没有后继结点)
  • 树结构(描述结点之间的层次关系,嵌套关系,一个结点只有一个前驱,可以有多个后继,但是根结点没有前驱,例如:在计算机中,A,B,C,D都是四个文件夹,其中B,C,D都放在A文件夹中,这里A就相当于根结点没有前驱,但是B,D又放在C中,A是C的前驱结点有且只有一个,D,B又是C的后继结点,有两个,但是D,B各自都只有一个前驱,那就是C,这种结构就是树结构)
  • 图结构(描述结点之间最一般的关系(多对多),图结构的两个结点之间都有可能有或没有关系,例如:城市的交通网A,B,C,D,E,R都是城市(结点),A城市可以去B,C城市,B城市还可以去C,D,E城市,而C城市还可以去D,E城市,而,D,E两个城市除了有B,C的线路外,不存在其他线路,无法到达其他城市,R城市是封闭城市,不与外界沟通,不存在交通网,前后两个点之间的前驱结点数量,和后继节点数量不确定)
  • 散结构(结点之间松散的“无关关系’’,相当于上面例子中的R城市)

但是,聪明的人不难看出,图结构在满足一些特定的条件可以变成树结构和散结构,这是因为树结构和散结构都是图结构的一种特例.

运算(operation)

对数据和数据结构的处理操作,不同的数据结构有不同的运算:如表结构的常见运算:查找,插入,删除,排序等

  • 查找(Search)在数据结构中寻找满足某个特定要求的数据元素(位置或值)
  • 插入(Insert)在数据结构上增添新的数据元素(指定位置,指定特征)
  • 删除(Delete)删除数据结构中某个指定的数据元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值