数据结构 学习笔记

 

这是我的第一篇博文。

 

近期一直在做数据结构课程的实验,从线性表 到 树结构 再到 图结构,发现指导书上的抽象的东西太多,基本全是伪代码,而且树和图中的算法很多,比如广度优先搜索要用到队列,然后就开始想想队列是怎么个写法,再然后又不由主的想起一个问题,队列在哪学的呐……再翻翻书? so一直想制作一个思维导图,but我比较懒,太麻烦不想做,可是又不想辜负自己这一番心血来潮,于是对着书的目录,凭借自己课上的记忆,查阅各章节资料之后,准备做一次笔记,记录我的学习历程。

 

到底啥是“数据结构”?个人理解,就是“孙子兵法”而已。

怎么理解这个“兵法”?简单粗暴点,也就是下面这些。

 

1.  抽象层-逻辑结构

 

表示数据元素之间的逻辑关系,可以看作是从具体问题抽象出来的数学模型,与数据的存储无关。

集合结构 ( )     结构中的数据元素仅同属于一个集合,元素之间互不干扰。

线性结构 ( )     结构中的数据元素具有一对一的前后关系。

树型结构 ( )     结构中的数据元素具有一对多的父子关系。

网状结构 ( )     结构中的数据元素具有多对多的映射关系。

 

2.  结构层-物理结构

记录数据结构在计算机中存储方法,亦称作存储结构。存储内容包括元素的表示,实现方法,及元素间关系的表示。

顺序结构   结构中的数据元素存放在一段连续的地址空间中;

优点:随机访问方便

缺陷:空间利用率低,插入删除不方便

链式结构   结构中的数据元素存放在彼此独立的地址空间中;

每个独立的地址空间称为节点,节点除保存数据外,还需要保存相关节点的地址。

优点:插入删除方便,空间利用率高

缺陷:随机访问不方便

索引结构   用结点的索引号来确定结点存储地址;

优点:检索速度快

缺陷:增加了附加的索引表,会占用较多的存储空间

散列结构   根据结点的值确定它的存储地址;

优点:检索、增加和删除结点的操作速度快

缺陷:采用不好的散列函数时可能出现结点单元的碰撞,而需要附加时间和空间开销

3.  实现层-运算结构

创建与销毁      分配资源,建立结构,释放资源;

插入与删除      增加、减少数据元素;

获取与修改      遍历、迭代、随机访问;

排序与查找      主要针对各种算法应用;

 

到此为止,以上基本涵盖了数据结构各个层面,仅以此作为一个思维导图理清学习脉络,数据结构这门课要深究的内容还有很多,日后进行补充。

其实一直以为博客都是些技术性的文章,然而并不都是这样,用它来记录自己的学习历程,也未尝不可,这本就是一个学习交流的过程,希望看完我第一篇博文的你们,能够有所收获。

^ ^

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值