数据结构学习笔记(一)

数据结构学习笔记(一)

古人云:学如弓弩,才如箭簇,要想成为高手,“内功”必须扎实,作为一名单片机业余开发者,对计算机的认知一般,对语言的认知仅停留在“选择、顺序、循环”的逻辑结构上,因此在写程序的过程中,时而有一知半解之感,为了提升自身的编程“功力”,打算从基础的数据结构开始学习,特此开博客以记录所学所思。


什么是数据结构

数据结构,顾名思义,即“数据+结构”,平常的工资表,班级成绩统计单就是典型的数据与其组织形式的体现,在计算机发明之前,我们对此类数据的要求是尽可能清晰、准确、易读且易保存,比如古时的记账本,计算机发明之后,我们得考虑用计算机这一载体实现相同的目的,于是,就有了计算机上的数据的存储与运算,综合来看,研究数据结构,本质上是在计算机中,抽象化数据的逻辑结构、提出最优数据存储方案以及为数据的运算打基础

逻辑结构中重要概念

结点
初等项
组合项
关键码

其中结点的概念最为重要,在此不做详细说明,要注意的有:结点类型有哪些,结点与结构的关系(线性结构与非线性结构)、作为结构最小单位的结点应如何在不同的场景中选取

数据如何存储

1.最简单的数据存储——顺序存储,从一号位置放到第一百号位置,非常简单粗暴,但是仅适用于逻辑结构简单的数据
2.带链接的方式——用到了所谓的指针字段,左边是数据项,右边是指针项,可以明显的看出来,存储空间一部分给数据,另一部分给了指针,相比于顺序存储,该方式不够紧凑属于非紧凑结构
3.索引——对于线性的数据结构,结点可以排成序列,根据每个结点不同的位置标号(索引号)计算出存储地址
4.散列——即根据结点字段里面的关键码,通过散列函数映射出存储地址,从数学的角度上看,和索引十分相似,但是该方法还能用于非线性结构。

一般的,数据可以由以上四种方式组合存储,目的是为了在尽可能占用较小的数据空间的同时,为之后的数据运算节约机器时间

数据的运算

运算基于数据本身的逻辑结构,实现于数据的存储结构,常见的运算有:检索、删除、插入、更新、排序等,这些运算的基本单元是结点,运算的规则统称为算法,关于算法的设计,下部分在讲。

最后需要注意的是,数据的逻辑结构相同而存储结构不同,其数据结构依旧不同,比如线性表这一逻辑结构,如果顺序存储,则为线性表,若带链接存储,则为链表,这两种存储方式,在之后对数据的运算上会有明显差异,同样的,即使数据的逻辑结构和存储结构相同而运算不同,其数据结构依旧不同

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值