程序员为何秃顶之数据结构-线性表-初识线性表

      如果你想成为一个合格的程序员,那么除了对于编程语言的熟练掌握之外。那就是对于数据结构,这门令无数程序员头秃的学科的掌握。放眼望去,只有掌握了这门内功,你才能够逐渐走向癫疯!!!否则,如无根之木,终其一生,也只能徘徊在那扇大门之外。碌碌终生,最后只能轻叹一声:程序员是一碗青春饭呐!

      下面,请准备好防脱洗发水,让我们逐渐走向癫疯!

      什么是线性表,很多书上都会举例子,说,线性表,就是学生排队一样。每一个学生前面都只可能有一个人,后面也只会有一个人。那么前面的那个人,我们给他一个名字,叫直接前驱。后面那个呢,也给它一个名字,叫直接后继!当然了,你们班学生的数量肯定是有限的喽。ok,至此,我们就知道了线性表的定义。官方的定义,我这里就不提了哈。

    那么线性表,又分为哪几类呢?见下图。

  顺序存储,就是按顺序去排队。以顺序存储结构存储的顺序表,叫做顺序表

张三李四王五

 

链式存储,就像一列火车,每一节车厢,都连接着下一个车厢。每一个节点都会有下一个节点的地址。以链式存储结构存储的顺序表,叫做链表

 但是,顺序表和链表都是线性表。他们符合线性表的所有特性!那么顺序表和链表,又有哪些自己的特性呢?

试想一下,一列学生,如果你想找到第五个学生,是不是很容易呢?你只需要大喊一声!第五名,出列!他自己就会出来。计算机也是惊人的相似呐!这就是顺序表的特性:随机访问。当然了,排列的越紧凑,越有利于空间的利用,那么,这就是顺序表的第二个特性:占用连续的存储空间,换句话说,那就是空间的利用率高!

反观之。链式存储的特点则是:节点的存储空间利用率较低,但他的存储特点,又决定了,他是可以灵活的增加节点的,也就是支持存储空间的动态分配

好了,到这里,我们初步认识了线性表。接下来,让我们继续深入!刚开始写,还是写的很生硬,不喜勿喷哦!

持续更新中。。。

    

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
线性表是一种常见的数据结构,它表示具有相同数据类型的一组元素的有序序列。线性表的元素之间存在一种顺序关系,每个元素都有一个前驱和一个后继(除了第一个元素没有前驱,最后一个元素没有后继)。线性表可以用顺序存储结构或链式存储结构实现。 在顺序存储结构线性表的元素按照顺序存储在连续的内存空间,可以通过元素的下标来访问和操作元素。插入或删除元素时,需要移动其他元素,因此操作的时间复杂度较高。 链式存储结构线性表的每个元素都包含一个数据域和一个指针域,指针指向下一个元素。通过指针的链接,元素可以按照任意顺序存储在内存,插入和删除操作只需要改变指针的指向,因此时间复杂度较低。 线性表常见的操作包括插入、删除、查找、获取长度等。其插入和删除操作需要注意保持线性表的顺序关系。 常见的线性表有数组、链表、栈和队列。数组是最简单的线性表,通过下标可以直接访问元素;链表是动态存储结构,插入和删除操作方便,但访问元素需要遍历链表;栈是一种特殊的线性表,只允许在表的一端进行插入和删除操作;队列也是一种特殊的线性表,只允许在表的一端进行插入操作,在另一端进行删除操作。这些数据结构在实际应用都有各自的应用场景和优缺点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值