算法基础——线性结构

------摘录自知乎

线性结构介绍

  • 线性结构是一个有序数据元素的集合

这个很好理解,有序就如ABCD...;1234...

  • 常用的线性结构有:线性表,栈,队列,双队列,串(一维数组)

猜得没错的话,目前可能大家在里面只能看得懂:串(一维数组)。其他的看不懂不要紧,想了解后续慢慢看~

这两点结合起来一句话就是:有序的一维数组(线性表,栈,队列,双队列)

线性结构特征

1.集合中必存在唯一的一个”第一个元素”

可以理解为:12345... 必须只能有1,不能是11。如112345..

2.集合中必存在唯一的一个”最后的元素”

可以理解为:12345.... 必须只有5,不能是55,如123455....

3.除最后元素之外,其它数据元素均有唯一的”后继”

这个 “后续” 是指后面一个元素

4.除第一元素之外,其它数据元素均有唯一的”前驱”

这个 “前驱” 是指前面一个元素

5. 数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构

如(a0,a1,a2,.....,an),a0为第一个元素,an为最后一个元素,此集合即为一个线性结构的集合。相对应于线性结构,非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后继
 

非线性结构

  • 关于广义表、数组(高维),是一种非线性的数据结构。
  • 常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图

这两点结合起来一句话就是:无序的多维数组(二维数组,广义表,树(二叉树等),图)

非线性结构特征

  1. 一个结点元素可能有多个直接前驱和多个直接后继。

了解线性结构后,这个就很好理解了。待会会讲解到。

那么这两点特征及介绍说明了后,很清晰可以看出来,如果不是线性结构那就一定是非线性结构。所以非线性结构不用过多了解到,大概略知一二就可以了。

最后要说的是什么是线性,线性顾名思义就是一条线,比如我们常见的步骤条,1到2到3到4…. 连起来就是一条线。这很好理解了吧~

实例介绍

我们拿最常见的问题举例:

设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是______。

A) R={(1,2),(3,2),(5,1),(4,5)}

B) R={(1,3),(4,1),(3,2),(5,4)}

C) R={(1,2),(2,4),(4,5),(2,3)}

D) R={(1,3),(2,4),(3,5),(1,2)}

那么我们了解了线性结构的特征,那么我们画个图去判断一下。

选项A:

A题画图后可以看出,“4” 没有前驱,无法连城一条线。 不符合线性结构:
“数据元素之间存在着“一对一”的线性关系的数据结构”、“除第一元素之外,其它数据元素均有唯一的”前驱”。”
那么A可以排除

选项B:

这从中可以看出,能连城一条完整的线:5->4->1->3->2。 符合线性结构特征,正确答案则为B

选项C

这条线不符合线性结构一对一关系,“4” 没有前驱,
无法连城一条线。 不符合线性结构:
“数据元素之间存在着“一对一”的线性关系的数据结构”、“除第一元素之外,其它数据元素均有唯一的”前驱”。”
C也是错误的

D选项

D题画图后可以看出,“4”、”5“ 没有前驱,“3”没有后续, 无法连城一条线。 不符合线性结构:
“数据元素之间存在着“一对一”的线性关系的数据结构”、“除第一元素之外,其它数据元素均有唯一的”前驱”、“除最后元素之外,其它数据元素均有唯一的”后继””
那么D可以排除

那么最终这题答案是B!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*小唐不吃糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值