全国服务热线:400-6263-721

位置:南宁达内IT教育培训学校 > 学校动态 > 数据结构之线性表讲解

数据结构之线性表讲解

来源:南宁达内IT教育培训学校时间:2022/3/31 16:17:55

  相信很多学习C语言、Java等编程语言的小伙伴们在掌握了基础语法后就了解到了数据结构与算法,这两个熬秃了多少程序员的头。数据结构和算法的关系是依赖的,实现算法需要一定的数据结构,数据结构有很多种类,其中较简单的一种就是线性表,而线性表中又分为顺序表和链式表(简称链表),我们就来介绍一下线性表的这两种表。

  基础数据类型

  我们知道,每一门语言都有一些基础的数据类型,比如int,float,char,这些数据类型就像一个一个的点。但是我们在实际使用的时候会把一些有关联的点组合起来使用,这就是有结构的数据(比如将一个一个的数据存放在一起,这就是一个集合(枚举类型))。

  线性表

  数据结构不仅描述了数据的格式,还描述了数据与数据间的关系,较常见的就是数据与数据之间一一联系,个数据和后一个数据相连,这种数据结构较后会像线一样连成一串,这种数据结构也因此得名为线性表。

  线性表的实现有两种形式,这两种实现方式的不同主要是内存造成的:

  顺序表

  实现线性表的较简单的方式,就是在一片连续的内存中按照顺序填充数据,这样每个数据都会像排队一样在内存空间里有一定的位置。要访问数据的个数据,只要在内存中相应偏移一定的量(通常是一个数据的长度),就能访问到相应的数据,访问后一个数据也可以使用相同的方式。

  实际上在看到连续的内存这个字眼,小伙伴们应该马上就想到了吧?没错,就是数组(在python中没有数组,但有队列和元组,在此处对应的是元组,下文会有所介绍)

  nullarr0=Warr1=3 arr2=C arr3=S arr4=C arr5=H arr6=o arr7=o arr8=l

  nullnull null null null null null null null null

  如上所示,这就是一个典型的顺序表。

  顺序表的问题

  前文中我们提到,创建顺序表需要开辟一块固定的空间,通常这个空间开辟后就无法修改其容量,也就是所这个顺序表初始化的时候只能存放10个数据,就不能存放超过十个数据。这样的使用会存在这样的问题:我怎么知道我需要多大的空间,换言之,在不知道需要多大空间的时候,使用顺序表就要根据经验来判断了,如果预先开辟过大的空间,就会有空间浪费的问题。另外,顺序表的数据操作也有一定的资源浪费,修改数据上逻辑是正常的,我只要到固定的位置改动数据即可,删除和添加较后一个数据也是正常的,还是到较后的位置处理数据即可,那么我要在顺序表中间或者开头插入一个数据呢?这个时候我就要在要插入的位置开始,将所有的数据后移一位,才能将新数据填充进去,删除也有同样的情况,要将要删除的

  此外还有另一个问题:如果我本身没有这么多空间呢?内存的使用并不是有规律的,开辟一块固定宽度的空间很多时候只是一种奢求,如何在支零破碎的内存中利用好每个空隙,这就是接下来的主角——链式表的优势了。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1658/news/507459/违者必究! 以上就是南宁达内IT教育培训学校 小编为您整理 数据结构之线性表讲解的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721