数据结构的简单理解(1)

一直以来对数据结构都不是特别理解,前段时间正好看到一位大神的解说,让自己对数据结构有了进一步的认识,故在此记录,希望能够帮助更多人去理解数据结构。
数据结构一般包含如下三个方面:

1、数据的逻辑结构
数据的逻辑结构可以看做是从具体问题中抽象出来的数学模型,仅仅描述数据项之间的逻辑关系(理解到这里就可以了),即具体问题中各个数据项之间的前后关系。与数据在计算机中的存储位置无关,独立于计算机之外。

2、数据的存储结构:
是数据的逻辑结构在计算机中的实现,是具体的,与具体的计算机语言有关。通常有两种不同的存储方式:顺序存储和链式存储。

3、算法
数据的运算定义在数据的逻辑结构上,每种逻辑结构都有一个运算的集合。最常用的检索、插入、删除、更新、排序等运算实际上只是在抽象的数据上所施加的一系列抽象的操作。
 所谓抽象的操作,是指我们只知道这些操作是”做什么”,而无须考虑”如何做”。只有确定了存储结构之后,才考虑如何具体实现这些运算。

这里写图片描述

为了增加对数据结构的感性认识,我们通过下面的表格进行理解:

这里写图片描述
(1)逻辑结构的描述
  表中的每一行是一个数据元素(或记录、结点),它由学号、姓名、各科成绩及平均成绩等数据项组成。
表中数据元素之间的逻辑关系是:对表中任一个结点,与它相邻且在它前面的结点(亦称为直接前趋(Immediate Predecessor))最多只有一个;与表中任一结点相邻且在其后的结点(亦称为直接后继(Immediate Successor))也最多只有一个。表中只有第一个结点没有直接前趋,故称为开始结点;也只有最后一个结点没有直接后继。故称之为终端结点。

(2)存储结构
  该表的存储结构是指用计算机语言如何表示结点之间的这种关系,即表中的结点是顺序邻接地存储在一片连续的单元之中(顺序存储方式),还是用指针将这些结点链接在一起(链式存储方式)。

(3)数据的运算
  在上面的学生成绩表中,可能要经常查看某一学生的成绩;当学生退学时要删除相应的结点;进来新学生时要增加结点。究竟如何进行查找、删除、插入,这就是数据的运算问题。
搞清楚了上述三个问题,也就弄清了学生成绩表这个数据结构。

本文大部分借鉴了
http://student.zjzk.cn/course_ware/data_structure/web/gailun/gailun1.1.1.htm的文章,然后根据自己的理解整理了如上的文章。如果大家看不明白的话可以拜读上面大神的文章。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值